我在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();
}
}
答案 0 :(得分:2)
我认为你必须在userDropDown
事件中绑定Page_Load
而没有条件
if (!IsPostBack)
请将dropdown binding part
置于if (!IsPostBack)
条件下,然后才能正常工作
答案 1 :(得分:2)
请在if(!ispostback){}或中绑定dropdownlist值 提交按钮后,请将更新的字段绑定到dropdownlistname.text
答案 2 :(得分:1)
听起来你是在按照要求将DropdownList绑定到数据源。相反,只有当Page.IsPostBack
如下所示为假时才绑定它; (您可能不需要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。