有没有其他方法来过滤网格视图?

本文关键字:网格 视图 过滤 其他 方法 有没有 | 更新日期: 2023-09-27 18:14:09

此刻,我使用下面的代码来过滤我的gridview根据我在下拉列表中选择的是调用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;
    }

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

有没有其他方法来过滤网格视图?

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

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

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

如果你使用集合,那么使用LINQ来过滤记录。但是所有这些方法都不会给你最新的记录