Gridview过滤器在分页时重置

时间:2013-04-06 13:06:23

标签: c# asp.net gridview

我有一个gridview,我在我的onload方法中绑定了我的数据库。

如图所示:

      if (!IsPostBack)
        {
           SqlConnection sqlcon = new SqlConnection(connstring);
           SqlCommand sqlcmd = new SqlCommand("select * from Coffees ORDER BY coffeeName ASC", sqlcon);
           SqlDataAdapter adp = new SqlDataAdapter(sqlcmd);
           DataSet ds = new DataSet();
           adp.Fill(ds);
           GridView1.DataSource = ds.Tables[0];
           GridView1.DataBind();

        }

我允许我的用户在搜索字词中过滤gridview。我现在关注的问题是,当我更改页面时,过滤器会丢失。

我已阅读过每次都需要重新绑定过滤器,这就是我遇到的问题。

这是我的过滤器:

        private void setGrid(string searchTerm)
    {
        if (IsPostBack)
        {
            string item = DropDownList2.SelectedValue;
            SqlConnection sqlcon = new SqlConnection(connstring);
            SqlCommand sqlcmdd = new SqlCommand("SELECT * FROM Coffees WHERE " + searchTerm + " = '" + item + "'", sqlcon);
            SqlDataAdapter adpp = new SqlDataAdapter(sqlcmdd);
            DataSet dss = new DataSet();
            adpp.Fill(dss);
            GridView1.DataSource = dss.Tables[0];
            GridView1.DataBind();

        }

    }

如上所示,我有一个处理回发的if语句。回发是我仍然需要尝试并解决的问题,但我相信这是在重新加载网格,如果它是一个回发。我试图改变它,所以如果它是一个回发它不受影响,但这只是忽略了所有过滤器。

希望有人可以告诉我哪里出错了。以及我如何应用过滤器占用所有y页面。

1 个答案:

答案 0 :(得分:0)

我将搜索词保存为viewstate变量,然后应用于我的页面索引更改方法和if以检查它是否为null。然后我要么在searchterm上重新绑定网格,要么用标准绑定来显示所有结果。