使用 Gridview 的默认分页功能当然非常简单方便,问题是数据量比较大的时候会有一些延时(因为 Gridview 是把所有记录都加载到内存进行分页的),如果使用objectDataSource 配合 GridView(或其他控件)使用存储过程分页不存在这种情况,可以轻易实现大批量记录分页。

    拿100万条记录试验了一下:sqlDataSource + Gridview 自动分页后每翻一页需要大概10多秒,而使用 objectDataSource + GridView + 存储过程分页,每翻一页只需要不到两秒钟就可以了。

这里面最关键的有几点:
1.存储过程必须的两个参数要搞明白是什么意思,不是随便写个分页的存储过程就能用的!
2.必须给 objectDataSource 的 SelectCountMethod 指定一个返回 int 类型的记录总数
3.objectDataSource 的 EnablePaging 属性值指定为 True  时默认会提交两个参数(maximumRows 和 startRowIndex),就是存储过程中用到的那两个参数。默认在代码中是没有的,但是在 SelectMethod 方法中只管接收就是了(可以手工指定参数名)

数据库结构:

Code

 

存储过程:

Code

 

页面布局:

Code

 

实体类:

Code

 

 

换个样式
再完美一点,增加一个 dropdownlist 选择页码,把翻页换成下边图片中的样式:

 

Gridview 增加页码样式定义:

Code

 

翻页代码:

Code

 

posted on 2009-01-22 10:11  jarod99  阅读(1527)  评论(0编辑  收藏  举报