【问题标题】:Is there another way to filter a grid view?还有另一种过滤网格视图的方法吗?
【发布时间】:2013-05-17 09:13:13
【问题描述】:

目前我正在使用下面的代码根据我在下拉列表中选择的内容过滤我的网格视图,该下拉列表调用填充它的 SQL 语句。

 protected void SetYear(object sender, EventArgs e)
    {
        DropDownList ddl = (DropDownList)sender;
        if (filter != null)
        {
            if (filter.ContainsKey("Year 1"))
            {
                foreach (ListItem li in ddl.Items)
                {
                    if (li.Text == filter["Year 1"].ToString().Substring(2, filter["Year 1"].ToString().Length - 3))
                    {
                        li.Selected = true;
                        return;
                    }
                }
            }
        }
    }
    protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e)
    {
        DropDownList dd = (DropDownList)sender;
        if (dd.SelectedItem.Text != "Please Select")
        {
            if (filter.ContainsKey("Year 1"))
            {
                filter["Year 1"] = "='" + dd.SelectedItem.Text + "'";
            }
            else
            {
                filter.Add("Year 1", "='" + dd.SelectedItem.Text + "'");
            }
        }
        else
        {
            filter.Remove("Year 1");
        }
        ApplyGridFilter();
        GridView1.PageIndex = 0;
    }

我想知道是否有其他方法可以做到这一点??

【问题讨论】:

    标签: c# asp.net gridview drop-down-menu asp.net-controls


    【解决方案1】:

    你的做法很好。您可以使用更新面板来避免完整的回发。还有其他方法,

    页面加载时第一次获取datatable中的结果,后续请求过滤datatable中的记录。

    dt.DefaultView.RowFilter = "Name LIKE 'XXX' "
    

    此外,如果您使用集合,则使用 LINQ 过滤记录。但是所有这些方法都不会为您提供最新的记录。

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 1970-01-01
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      相关资源
      最近更新 更多