2014-01-30 54 views
0

我動態填充DDL:爲什麼下拉列表值不通過?

<asp:DropDownList ID="ddlTimeZone" Style="width: auto" runat="server" > 
       </asp:DropDownList> 

有了這個功能:

private void initTimeZone() 
{ 
    var timeZones = TimeZoneInfo.GetSystemTimeZones(); 
    foreach (TimeZoneInfo timeZone in timeZones) 
    { 
     ListItem item = new ListItem() 
     { 
      Text = timeZone.DisplayName, 
      Value = timeZone.Id 
     }; 
     ddlTimeZone.Items.Add(item); 
    }   
} 

一切工作正常,但是當我試圖讓所選擇的值,我得到一個空字符串

string item = ddlTimeZone.SelectedValue; -> empty string.. 

我怎麼解決這個問題?

+0

你在哪裏調用'initTimeZone'方法?它在'Page_Load'中嗎? – ekad

+0

你把這個放在'if(!Page.IsPostBack){}'裏面嗎? – Pete

+0

in page_load function if(!IsPostBack){initTimeZone(); } – user2560521

回答

0

由於ASP.NET構建控件的生命週期,動態值將在回發過程中「消失」。

嘗試在if(!IsPostBack)條件之外調用您的initTimeZone方法,看看它是否有效。像這樣:

protected void Page_Load(object sender,EventArgs e) { 
     if(!Page.IsPostBack) { 
     //Some Code 
     } 
     initTimeZone(); 
} 
0

檢查頁面或父級控件的Control.EnableViewState。
也許你把它關掉?