Dynamically adding a DropDownList
19,409
The problem may be if you are not adding the control to the page early enough. Controls need to be added early in the page lifecycle to get their events tied in.
You're doing it in the Load
event, which is too late. Try adding it during the Init
event or overriding the CreateChildControls
method.
And also make sure you do this on EVERY page request including postbacks.
Hope this works for you.
Author by
user575219
Updated on June 04, 2022Comments
-
user575219 almost 2 years
I am trying to add a dropdown dynamically. No errors except that I don't see the dropdown Here's the code:
protected void Page_Load(object sender, EventArgs e) { if(Ispostback) { DropDownList ddlPercent = new DropDownList(); ddlPercent .ID = "ddlDiscountPercent"; ddlPercent .AutoPostBack = true; Panel1.Controls.Add(ddlPercent ); ddlPercent .ID = "ddlPercent " + 1; ddlPercent .Items.Add(new ListItem("5", "5%")); ddlPercent .Items.Add(new ListItem("10", "10%")); ddlPercent .Items.Add(new ListItem("15", "15%")); ddlPercent .Items.Add(new ListItem("20", "20%")); ddlPercent .Items.Add(new ListItem("30", "30%")); ddlPercent .Items.Add(new ListItem("50", "50%")); ddlPercent.SelectedIndexChanged += new EventHandler(ddlPercent_SelectedIndexChanged); ContentPlaceHolder cph = (ContentPlaceHolder)this.Master.FindControl("MainContent"); cph.Controls.Add(ddlPercent ); // ddlPercent.SelectedIndex =(Int32) ViewState["ddl_index"]; } } protected void ddlPercent_SelectedIndexChanged(object sender, EventArgs e) { DropDownList ComboBox=(DropDownList)sender; ViewState["ddl_index"] = ComboBox.SelectedValue; }