Am using the below code to create a multiple drop down list. But i can't able to maintain the previous selected value. Please help me to maintain the previous vaues.
My code is Here:
for (int i = 1; i <= Count; i++)
{
Session["i"] = Count;
Panel1.Controls.Add(new LiteralControl("<br />"));
Label lbl = new Label();
lbl.ID = "lbl" + i;
lbl.Text = "Head";
Panel1.Controls.Add(lbl);
Panel1.Controls.Add(new LiteralControl(" "));
DropDownList ddl = new DropDownList();
ddl.ID = "ID" + i;
ddl.DataValueField = "fld_Head";
ddl.DataTextField = "fld_Head";
ddl.DataSource = DVS;
ddl.DataBind();
Panel1.Controls.Add(ddl);
}
As I already mentioned here you should init values of you dynamic controls in Page_Init
event.
Because asp.net internal functionality working with viewstate populates values in Page_Load
event and if your dynamic control isn't still created it's values are ignored.\\
Common issue =)
You are adding a DropDownList
dynamically to a Panel
. Newly added DropDownList
control will not be available at a post-back. You can use
HttpContext.Current.Request.Form["ID" + i]
to get the values from post request. And with that values you can add new controls with new state.
在Page_Init中创建动态控件非常有效。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.