我正在动态填充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 :(得分: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();
}