2012-10-05 73 views
1

正在使用下面的代碼創建多個下拉列表。但我無法保持之前選定的值。請幫助我保持以前的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("&nbsp;&nbsp;&nbsp;&nbsp;")); 

      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

上述代碼存在於按鈕單擊事件中 – romi

+0

單擊按鈕時會發生什麼? – freebird

+0

在第二行創建的新控件並清除以前的選擇。 – romi

回答

3

正如我已經提到here你應該初始化你的動態控制值在Page_Init事件。

因爲隨着ViewState的工作asp.net內部功能在Page_Load事件,如果填充值的動態控制是不是還創建它的值被忽略。\

常見的問題=)

0

要動態添加DropDownListPanel。新增加的DropDownList控件將不會在後期提供。您可以使用

HttpContext.Current.Request.Form["ID" + i] 

以獲取來自發布請求的值。通過這些值,您可以添加新狀態的新控件。

+0

你能解釋我的代碼嗎 – romi

0

把創建Page_Init中的動態控件完美工作。