0

我正在尝试使用两个 DropDownLists 来过滤数据。我将两个OnSelectedIndexChangedEqual 都设置为下面的方法。问题是它只是抓住了SelectedIndex被改变的 DDL。示例:如果我在 DDL1 中选择一个选项,它会获取该值而不获取 DDL2 的值。他们都有相同的OnSelectedIndexChanged我认为它会抓住两者的当前价值。有没有办法让它同时查看两个 DDL 控件?

 protected void BrandsList_SelectedIndexChanged(object sender, EventArgs e)
 {
    int DDLcatId = CategoriesList.SelectedIndex;
    int DDLBraId = BrandsList.SelectedIndex;

    IQueryable<Product> DDLprodResult = GetProductsDDL(DDLcatId, DDLBraId);

    if(DDLprodResult == null)
    {

    }

    else
    {
       CatLab.Text = DDLprodResult.ToList().Count().ToString();
       productList.DataSource = DDLprodResult.ToList();
       productList.DataBind();
    }
 }
4

1 回答 1

1

您的代码应该可以工作。AutoPostBack="true"当然,如果您在两者上都设置了(默认为 false),则只能更改一个。但是SelectedIndex无论如何,您都应该在处理程序中得到正确的结果。

所以我猜:你DropDownLists在每次回发时都在绑定数据。仅执行此操作if(!IsPostBack),否则您总是会用原始值覆盖更改。

例如,在Page_Load

protected void Page_Load(Object sender, EvengtArgs e)
{
    if(!IsPostBack)
    {
        // DataBind your DropDownLists
    }
}
于 2013-03-06T18:49:05.923 回答