使用以下代码创建多个下拉列表。但我无法保持之前选择的值。请帮我保持之前的vaues。
我的代码在这里:
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);
}
答案 0 :(得分:3)
正如我已经提到的here,您应该在Page_Init
事件中初始化动态控件的值。
因为使用viewstate的asp.net内部功能会填充Page_Load
事件中的值,如果仍未创建动态控件,则会忽略其值。\
常见问题=)
答案 1 :(得分:0)
您正在向DropDownList
动态添加Panel
。新添加的DropDownList
控件将不会在回发后提供。你可以使用
HttpContext.Current.Request.Form["ID" + i]
从post请求中获取值。使用这些值,您可以添加具有新状态的新控件。
答案 2 :(得分:0)
在Page_Init中创建动态控件非常有效。