0

我有一个网格视图,我在我的 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 页上应用过滤器。

4

1 回答 1

0

我将搜索词保存为视图状态变量,然后在我的页面索引更改方法中应用 if 来检查它是否为空。然后我要么在搜索词上重新绑定网格,要么使用标准绑定来显示所有结果。

于 2013-04-06T13:54:34.963 回答