2

我在 asp.net 页面中有一个下拉列表控件和一个按钮。下拉列表由方法填充。如果我选择第一个项目以外的任何项目,单击按钮后,我会丢失 DDL 中的选定项目,它会选择第一个项目,并且我仅在按钮单击事件中获取第一个项目的值。我该如何解决这个问题?

 <asp:DropDownList ID="userDropDown" runat="server" DataTextField="CustomerName"  DataValueField="CustomerId">
</asp:DropDownList>

protected void Button1_Click(object sender, EventArgs e)
{
if(!page.isPostBack)
{
    userDropDown.DataSource = CC.GetCustomers();
    userDropDown.DataBind();
}
}
4

3 回答 3

2

我认为您必须无条件 绑定userDropDown事件Page_Loadif (!IsPostBack)

请放入dropdown binding part内部 if (!IsPostBack) 条件,然后它应该可以工作

于 2013-08-23T15:47:43.417 回答
2

请在 if(!ispostback){} 内绑定下拉列表值,或在提交按钮后将更新的字段绑定到 dropdownlistname.text

于 2013-08-25T17:18:08.350 回答
0

听起来您正在根据请求将 DropdownList 绑定到您的数据源。而是仅在Page.IsPostBack为 false 时才绑定它,如下所示;(你可能不需要ObjectDataSource

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
     //bind your datasource here (something like below)
     userDropDown.DataSource = GetCustomers();
     userDropDown.DataBind();
   }
}

一旦调用 DataBind() 方法,它将丢失该对象的已发布数据,默认情况下将选择 FirstItem。

于 2013-08-23T15:47:56.870 回答