日期:2014-05-19  浏览次数:20496 次

利用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().
谢谢!