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