我有一个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页面。
答案 0 :(得分:0)
我将搜索词保存为viewstate变量,然后应用于我的页面索引更改方法和if以检查它是否为null。然后我要么在searchterm上重新绑定网格,要么用标准绑定来显示所有结果。