【问题标题】:ASP.Net DropDownList SelectedIndex not changingASP.Net DropDownList SelectedIndex 不变
【发布时间】:2011-10-24 20:44:07
【问题描述】:

我正在做一个项目,我有一个 OdbcDataReader,它从查询中读取数据并使用查询中的项目填充 DropDownList。当我运行 Web 应用程序并在列表中选择不同的项目时,无论是否启用回发、启用智能分页或 EnableViewState

 protected void populateGrid(OdbcDataReader reader)
    {
        ClientDropDownList.DataSource = reader;
        ClientDropDownList.DataTextField = "company";
        ClientDropDownList.DataBind();

    }

【问题讨论】:

  • 请提供更多信息。您使用哪个页面生命周期阶段来调用此 populateGrid(...) 方法?如果你想在后面的代码中获取选中的值,你用什么方法来做到这一点?
  • 您还应该设置DataValueField。

标签: asp.net drop-down-menu


【解决方案1】:

首先,您应该为 Dropdownlist 控件设置 AutoPostBack = true。

第二件事是您应该通过检查 Ispostback 来绑定 Page_Load 事件中的值

If(! IsPostBack())   
{

    Bind your dropdownlist  here.
} 

第三件事是根据 Asp.Net 生命周期过程。每次都会触发页面加载。每当页面刷新时。

【讨论】:

    【解决方案2】:

    检查您没有在每个PostBack 上调用PopulateGrid。人们遇到的最常见的问题之一。

    如果您在Page_Load 中调用PopulateGrid,请将其包装在if (!IsPostBack) 中。

    【讨论】:

      【解决方案3】:

      您可以使用此代码:

        foreach (ListItem item in YourDropDownList.Items)
           {
                  if (item.Text == defaultText) 
                  {
                      item.Selected = true;
                      break;
                  }
           }
      

      【讨论】:

        猜你喜欢
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-11
        • 1970-01-01
        相关资源
        最近更新 更多