保留回发后动态绑定下拉列表的设定值(Retain Selected Value of dynamic

2019-10-16 16:15发布

我有我的ASPX标记,像这样声明一个下拉列表:

<asp:DropDownList ID="State" runat="server"></asp:DropDownList>

然后,我将它绑定在页面加载像这样:

protected void Page_Load(object sender, EventArgs e)
    {
       BindDropdowns();
    }
private void BindDropdowns()
    {
        State.DataSource = DataAccess.GetStates();
        State.DataValueField = "FieldId";
        State.DataTextField = "FieldName";
        State.DataBind();
    }

所选的值回发后不保留,我也可以不火的selectedindexchangedevent。 怎么了 ?

Answer 1:

请改变你这样的代码:

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostback)
       BindDropdowns();
}

这意味着,在第一次页面加载你的下拉控件只能被绑定一次



Answer 2:

你必须使用AutoPostBack="true"

<asp:DropDownList ID="State" AutoPostBack="true" 
 runat="server"></asp:DropDownList>

而且还规定,女巫事件处理程序是这样的:

<asp:DropDownList ID="State" AutoPostBack="true" 
OnSelectedIndexChanged="State_SelectedIndexChanged" 
runat="server"></asp:DropDownList>

然后,在代码中。 绑定只是当不回发:

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostback)
       BindDropdowns();
}

protected void State_SelectedIndexChanged(object sender, System.EventArgs e)  
{  
    var somevalue= State.SelectedValue;  
} 


文章来源: Retain Selected Value of dynamically bound dropdownlist after postback