2

当页面最初加载(ddl_state)时,我有一个填充状态的 DropDownList。我选择一个状态,然后单击提交按钮。我在 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();
4

1 回答 1

2

您的问题是ViewState已禁用。

这表明您的两种症状:

  • DropDownListAutoPostBack启用回发后清除
  • 服务器不知道SelectedValueDropDownList什么

检查 web.config、页面和控件以检查它们是否都在禁用视图状态。

禁用视图状态

于 2013-09-25T21:09:45.687 回答