----------------------------------------------------------- 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"> </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> <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"> </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]
