为什么下拉列表值没有通过?

时间:2014-01-30 08:44:24

标签: c# asp.net

我正在动态填充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..

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

检查Control.EnableViewState是否为页面或父控件。
也许您将其关闭?

答案 1 :(得分:0)

由于ASP.NET构建中控件的生命周期,动态值将在PostBack过程中“消失”。

尝试在initTimeZone条件之外调用if(!IsPostBack)方法,看看它是否有效。像这样:

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