-----------------------------------------------------------

New Message on BDOTNET

-----------------------------------------------------------
From: ambatisreedhar
Message 3 in Discussion

This is my aspx page   <%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default2.aspx.cs" Inherits="Default2" %> <!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";> <html 
xmlns="http://www.w3.org/1999/xhtml"; >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body >
    <form id="Form1" method="post" runat="server">
    <table width="50%">
        <tr>
            <td  colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <td valign="top" align="center" colspan="2" style="FONT-WEIGHT: 
bold; FONT-SIZE: 18px; COLOR: black" >Dynamically create textboxes and 
dropdownlists</td>
        </tr>
        <asp:panel id="pnlCreateData" runat="server">
        <tr>
            <td valign="top" align="center" colspan="2" >Add some data to 
textbox and also select from dropdownlist, on postback the viewstate data will 
be presisted and controls content value will be loaded again</td>
        </tr>
        <tr align="center">
            <td align="center" valign="top">
                <asp:placeholder runat="server" 
id="phTextBoxes"></asp:placeholder>
            </td>
            <td align="left" valign="top">
                <asp:placeholder runat="server" 
id="phDropDownLists"></asp:placeholder>
            </td>
             <td align="left" valign="top">
                <asp:placeholder runat="server" 
id="phDropDownLists1"></asp:placeholder>
            </td>
        </tr>
        <tr>
            <td align="center" colspan="2" >
                <asp:button id="btnSubmit" runat="server" text=" Submit " 
width="150px"></asp:button>
                &nbsp;
                <asp:button id="btnAnotherRequest" runat="server" text=" Add 
Another Request " width="150px"></asp:button>
            </td>
        </tr>
        </asp:panel>
        <asp:panel id="pnlDisplayData" runat="server" visible="False">
        <tr>
            <td  colspan="2" align="center" valign="top">
                <asp:literal id="lTextData" runat="server"></asp:literal>
            </td>
        </tr>                    
        </asp:panel>
        <tr>
            <td  colspan="2">&nbsp;</td>
        </tr>
    </table> 
    </form>
</body>
</html>
 the code behind file ---------------------  
using System; 
using System.Collections; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Web; 
using System.Web.SessionState; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 
public partial class Default2 : System.Web.UI.Page 
{ 
// Number of controls added to view state 
protected int NumberOfControls 
{ 
get 
{ 
if (ViewState["NumberOfControls"] != null) 
{ 
return (int)ViewState["NumberOfControls"]; 
} 
else 
{ 
return 0; 
} 
} 
set 
{ 
ViewState["NumberOfControls"] = value; 
} 
} 
// Page Load  
private void Page_Load(object sender, System.EventArgs e) 
{ 
if (!Page.IsPostBack) 
{ 
this.NumberOfControls = 0; 
} 
else 
{ 
this.NumberOfControls = (int)ViewState["NumberOfControls"]; 
} 
} 
// Initialize DropDownBoxes data here 
// This data could come from database, xml file, or any other resource  
private void InitializeDropDownBoxes() 
{ 
DataTable myDataTable = new DataTable("MyDataTable"); 
DataColumn myDataColumn; 
DataRow myDataRow; 
// Create first column  
myDataColumn = new DataColumn(); 
myDataColumn.DataType = System.Type.GetType("System.Int32"); 
myDataColumn.ColumnName = "id"; 
myDataTable.Columns.Add(myDataColumn); 
// Create second column. 
myDataColumn = new DataColumn(); 
myDataColumn.DataType = Type.GetType("System.String"); 
myDataColumn.ColumnName = "item"; 
myDataTable.Columns.Add(myDataColumn); 
// Create new DataRow objects and add to DataTable.  
for (int i = 0; i < 10; i++) 
{ 
myDataRow = myDataTable.NewRow(); 
myDataRow["id"] = i; 
myDataRow["item"] = "---- item ----" + i; 
myDataTable.Rows.Add(myDataRow); 
} 
// Initialize DropDown List 
this.CreateDropDownBoxes(myDataTable); 
} 
// Add DropDownList Control to Placeholder 
private void CreateDropDownBoxes(DataTable dtTable) 
{ 
for (int counter = 0; counter <= NumberOfControls; counter++) 
{ 
DropDownList ddl = new DropDownList(); 
ddl.ID = "DropDownListID" + (counter + 1).ToString(); 
int nTotalRecords = dtTable.Rows.Count; 
for (int i = 0; i < nTotalRecords; i++) 
{ 
ddl.Items.Add(dtTable.Rows[i]["item"].ToString()); 
} 
phDropDownLists.Controls.Add(ddl); 
phDropDownLists.Controls.Add(new LiteralControl("<br><br><br>")); 
} 
} 
private void InitializeDropDownBoxes1() 
{ 
DataTable myDataTable = new DataTable("MyDataTable"); 
DataColumn myDataColumn; 
DataRow myDataRow; 
// Create first column  
myDataColumn = new DataColumn(); 
myDataColumn.DataType = System.Type.GetType("System.Int32"); 
myDataColumn.ColumnName = "id"; 
myDataTable.Columns.Add(myDataColumn); 
// Create second column. 
myDataColumn = new DataColumn(); 
myDataColumn.DataType = Type.GetType("System.String"); 
myDataColumn.ColumnName = "item"; 
myDataTable.Columns.Add(myDataColumn); 
// Create new DataRow objects and add to DataTable.  
for (int i = 0; i < 5; i++) 
{ 
myDataRow = myDataTable.NewRow(); 
myDataRow["id"] = i; 
myDataRow["item"] = "---- item ----" + i; 
myDataTable.Rows.Add(myDataRow); 
} 
// Initialize DropDown List 
this.CreateDropDownBoxes1(myDataTable); 
} 
protected void ddl_SelectedIndexChanged(object sender, EventArgs e) 
{ 
// NumberOfControls -= 1; 
string s = ((DropDownList)sender).SelectedValue; 
} 
// Add DropDownList Control to Placeholder 
private void CreateDropDownBoxes1(DataTable dtTable) 
{ 
for (int counter = 0; counter <= NumberOfControls; counter++) 
{ 
DropDownList ddl = new DropDownList(); 
ddl.ID = "DropDownListID1" + (counter + 1).ToString(); 
int nTotalRecords = dtTable.Rows.Count; 
for (int i = 0; i < nTotalRecords; i++) 
{ 
ddl.Items.Add(dtTable.Rows[i]["item"].ToString()); 
} 
ddl.AutoPostBack = true; 
ddl.SelectedIndexChanged += new 
System.EventHandler(this.ddl_SelectedIndexChanged); 
phDropDownLists1.Controls.Add(ddl); 
phDropDownLists1.Controls.Add(new LiteralControl("<br><br><br>")); 
} 
} 
// Add TextBoxes Control to Placeholder 
private void CreateTextBoxes() 
{ 
for (int counter = 0; counter <= NumberOfControls; counter++) 
{ 
TextBox tb = new TextBox(); 
tb.Width = 250; 
tb.Height = 60; 
tb.TextMode = TextBoxMode.MultiLine; 
tb.ID = "TextBoxID" + (counter + 1).ToString(); 
// add some data to textboxes 
tb.Text = "This is textbox " + counter + " data"; 
phTextBoxes.Controls.Add(tb); 
phTextBoxes.Controls.Add(new LiteralControl("<br>")); 
} 
} 
// Create TextBoxes and DropDownList data here on postback. 
protected override void CreateChildControls() 
{ 
// create the child controls if the server control does not contains child 
controls 
this.EnsureChildControls(); 
// Creates a new ControlCollection.  
this.CreateControlCollection(); 
 
if (Convert.ToInt32(ViewState["NumberOfControls"]) == NumberOfControls) 
{ 
// Here we are recreating controls to persist the ViewState on every post back 
if (Page.IsPostBack) 
{ 
CreateTextBoxes(); 
InitializeDropDownBoxes(); 
InitializeDropDownBoxes1(); 
} 
// Create these conrols when asp.net page is created 
else 
{ 
CreateTextBoxes(); 
InitializeDropDownBoxes(); 
InitializeDropDownBoxes1(); 
// increase the control to 1  
this.NumberOfControls = 1; 
} 
} 
 
// Prevent child controls from being created again. 
this.ChildControlsCreated = true; 
} 
// Read TextBoxes Data 
private void ReadTextBoxes() 
{ 
int n = this.NumberOfControls; 
lTextData.Text += "Entered text data from all the TextBoxes <br>"; 
for (int i = 0; i < n; i++) 
{ 
string boxName = "TextBoxID" + (i + 1).ToString(); 
TextBox tb = phTextBoxes.FindControl(boxName) as TextBox; 
lTextData.Text += tb.Text + ("<br>"); 
} 
} 
// Read DropDownList Data 
private void ReadDropDownLists() 
{ 
int n = this.NumberOfControls; 
lTextData.Text += "Selected item text from all the DropDownLists First Dropdown 
<br>"; 
for (int i = 0; i < n; i++) 
{ 
string DropDownListName = "DropDownListID" + (i + 1).ToString(); 
DropDownList ddl = phDropDownLists.FindControl(DropDownListName) as 
DropDownList; 
lTextData.Text += ddl.SelectedValue + "<br>"; 
} 
} 
// Read DropDownList Data 
private void ReadDropDownLists1() 
{ 
int n = this.NumberOfControls; 
lTextData.Text += "Selected item text from all the DropDownLists Second 
dropdown <br>"; 
for (int i = 0; i < n; i++) 
{ 
string DropDownListName = "DropDownListID1" + (i + 1).ToString(); 
DropDownList ddl = phDropDownLists1.FindControl(DropDownListName) as 
DropDownList; 
lTextData.Text += ddl.SelectedValue + "<br>"; 
} 
} 
// Increase the counter when button is clicked and add to view state 
private void btnAnotherRequest_Click(object sender, System.EventArgs e) 
{ 
NumberOfControls += 1; 
} 
// Read all the data from TextBoxes and DropDownLists  
private void btnSubmit_Click(object sender, System.EventArgs e) 
{ 
ReadTextBoxes(); 
ReadDropDownLists(); 
ReadDropDownLists1(); 
pnlCreateData.Visible = false; 
pnlDisplayData.Visible = true; 
} 
#region Web Form Designer generated code 
override protected void OnInit(EventArgs e) 
{ 
// 
// CODEGEN: This call is required by the ASP.NET Web Form Designer. 
// 
InitializeComponent(); 
base.OnInit(e); 
} 
/// <summary> 
/// Required method for Designer support - do not modify 
/// the contents of this method with the code editor. 
/// </summary> 
private void InitializeComponent() 
{ 
this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click); 
this.btnAnotherRequest.Click += new 
System.EventHandler(this.btnAnotherRequest_Click); 
this.Load += new System.EventHandler(this.Page_Load); 
} 
#endregion 
} 
------------------ 
  
Now the problem is   
I want to add an event to 2nd dropdown 
But 
I dont want to create all the controls on selected index change of 2nd 
dropdown. 
How to stop creating the controls? 
sreedhar

-----------------------------------------------------------

To stop getting this e-mail, or change how often it arrives, go to your E-mail 
Settings.
http://groups.msn.com/bdotnet/_emailsettings.msnw

Need help? If you've forgotten your password, please go to Passport Member 
Services.
http://groups.msn.com/_passportredir.msnw?ppmprop=help

For other questions or feedback, go to our Contact Us page.
http://groups.msn.com/contact

If you do not want to receive future e-mail from this MSN group, or if you 
received this message by mistake, please click the "Remove" link below. On the 
pre-addressed e-mail message that opens, simply click "Send". Your e-mail 
address will be deleted from this group's mailing list.
mailto:[EMAIL PROTECTED]

Reply via email to