废话不说,先来说我的思路,在gridview中使用搜索之后,出来的结果集如果一页显示不下来就会分页显示(前提是用户开启了分页显示数据),但是当你选择下一页的时候gridview里面显示的并不是搜索的结果集里面接下来的数据,而是重新绑定的初始化的数据集。这个让我很郁闷,今天看了一些帖子之后想到了一个思路,实现后果然达到了想要的结果。
我的思路是利用gridview的事件,重新绑定搜索的语句。下面是代码。实现过程中用两个文本框(设置为不可见)记录了搜索标志和搜索语句。
protected void ButtonSearch_Click(object sender, EventArgs e)
{
string style = list_searchstyle.SelectedValue.ToString();
string search = "'%" + TextBoxSearch.Text.ToString() + "%'";
string res = 搜索语句;
sqltest.SelectCommand = res;
GView_test.DataSourceID = "sqltest";
GView_test.DataBind();
pagechange.Text = "change"; //点击搜索后将搜索标志设置为change
txt_res.Text = res; //在文本框内记下当前的搜索语句
}
protected void GView_test_PageIndexChanged(object sender, EventArgs e)
{
if (pagechange.Text.ToString().Equals("change")) //判断是不是点击了搜索按钮
{
sqltest.SelectCommand = txt_res.Text.ToString(); //重新绑定搜索语句
GView_test.DataSourceID = "sqltest";
GView_test.DataBind();
pagechange.Text = "change";
}
else //否则什么也不做
{
//
}
}