我有一个DropDownList状态在页面最初加载时填充(ddl_state)。我选择一个州,然后点击“提交”按钮。我在btn_submit_Click方法的第一行有一个断点。在此之前没有运行Page_Load方法。在btn_submit_Click方法的第一行,ddl_state.SelectedValue的值是一个空字符串。我尝试将下拉列表的AutoPostBack设置为true(在某处读取并认为它可能会有所不同),但是下拉列表中的值会立即被清除!
有什么想法吗?
<asp:DropDownList ID="ddl_state" runat="server"
meta:resourcekey="ddl_stateResource1">
</asp:DropDownList>
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
lbl_errors.Text = string.Empty;
lblVoucherRequired.Text = string.Empty;
tb_name_addr_1.Focus();
PopulateStates();
PopulateFormFromSessionData();
}
protected void btn_submit_Click(object sender, EventArgs e)
{
if (!ValidateInput()) // ddl_state.SelectedValue is an empty string here!!!
{
return;
}
SetSessionVariables();
答案 0 :(得分:2)
您的问题是ViewState
已停用。
这表明了您的两种症状:
DropDownList
会在AutoPostBack
启用SelectedValue
的{{1}}是什么检查web.config,page和control以检查它们是否都禁用了viewstate。