日期:2014-05-18  浏览次数:20390 次

一个关于DataGrid控件的自定义分页问题
我已经知道如果想让DataGrid控件实现自定义的分页,需要把它的Allowcustompage属性设置为true,还应该VirtualItemCount属性指定为数据源中的记录总数,由VirtualItemCount和PageSize属性计算页数。
我使用了SqlDataReader对象作为DataGrid的数据源。我碰到的问题是,为什么在设置VirtualItemCount属性之前先完成数据绑定DataGrid分页就不正常了呢?我的SqlDataReader对象只含有一页的记录数(默认是10个),如果我先给DataGrid绑定了SqlDataReader数据源,然后再设置VirtualItemCount属性(这是因为VirtualItemCount接受的值是存储过程的输出参数,而SqlDataReader所含的记录是这个存储过程的返回结果集,所以我必须要先完成处理存储过程的结果集工作,然后才能够访问设定VirtualItemCount的输出参数),那么我只能得到这一页的数据而且DataGrid获得的分页数只是1页。但是反过来,如果我试着先设定VirtualItemCount属性,然后再给DataGrid对象绑定SqlDataReader数据源中的记录数,这样我便获得了正确的DataGrid分页的页数。
我想知道为什么会是这样呢?


------解决方案--------------------
其实自定义分页可以与DataGrid的设置没有任何关系的,一般写一个存储过程,返回当前页的记录数进行绑定,然后返回一个总记录数进行生成分页代码。
------解决方案--------------------
上网上查“百万数据 分页”,一堆一堆的,VS2003时,风靡一时啊,现在不用了,GridView挺好的。