【问题标题】:Checkboxlist loop is not working复选框列表循环不起作用
【发布时间】:2013-08-23 15:41:17
【问题描述】:

我在 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();
}
}

【问题讨论】:

  • 您的代码无法编译。 page 不存在。
  • 应该是Page.IsPostBack(检查区分大小写)。另请注意,它不应在 Button1_Click 事件中,因为按钮单击始终为 Page.IsPostBack = true。请改用 Page_Load 方法。

标签: c# asp.net .net


【解决方案1】:

我认为您必须在Page_Load 事件中无条件绑定userDropDown if (!IsPostBack)

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      听起来您正在根据请求将 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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-09
        • 2017-06-17
        • 2016-03-14
        • 1970-01-01
        相关资源
        最近更新 更多