利用gridview显示查询结果分页时,点下一页显示内容不再是查询结果集
我从数据库中查出的数据大约是几千条,用gridview分页显示出来了.但是在查看第二页的查询结果时,我发现显示出来的数据不是我所查询出来的,而是默认的在pageload里绑定的所有数据.我怀疑是databind()的问题.因为在pageload()里,没有ispostback.
我想问一下,在分页后点下一页时,
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
这个DataBind()数据绑定是如何进行的?
------解决方案--------------------要加ispostback
ispostback
{
绑定
}
不然你的页面每次load的时候就会执行 以前的绑定 所以显示不出来
------解决方案--------------------消失可能是没有数据了
------解决方案--------------------GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
-------------------
你这样作应当是不行的
你点击下一页时候就把按条件查的用所有的替换掉了
你是用默认的分页还是自己写的啊?
------解决方案--------------------GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = ds;//ds是你要绑定的数据源(查询以后的话就是查询后的数据源)
GridView1.DataBind();
------解决方案--------------------同意楼上。
把你的取出数据的步骤做成一个方法,作为绑定源返回。
在GridView1.DataBind();之前,加上
GridView1.DataSource = ds;//ds是你要绑定的数据源(查询以后的话就是查询后的数据源)。
单独使用
GridView1.DataBind();是没有任何意义的。
------解决方案--------------------我的问题解决了。设置了一个静态变量,在需要的时候改变其值.然后在每次ispostback时,databind().
谢谢!