CS系统中分页控件的制作
source link: http://www.cnblogs.com/thanks/p/14262068.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
需求:在一个已有的CS项目(ERP中),给所有的列表加上分页功能。
分页的几个概念:
- 总记录数 totalCount (只有知道了总记录数,才知道有多少页)
- 每页记录数 pageSize (根据总记录数和每页记录大小,可以计算出有多少页)
- 当前页 currentPage (当前页不能小于1,也不能大于总页数)
- 总页数 totalPage
SQL Server的不同分页方法:
- Top + 子查询,适用于SqlServer2000 及以前的版本中
- row_number() over (order by ... asc/desc),从Sqlserver2005之后开始有
- offset 20 rows fetch next 10 rows only, sqlserver2012及以后版本的数据库使用
不同数据库不同的分页方法,摘自 《给培训学校讲解ORM框架的课件》 一文:
因为系统是遗留的老系统,有上千个查询,所以要兼顾工作量和实施难易程度的问题,最终采用Sqlserver2012及以后使用的最新的分页功能。
原始查询:
改造后的查询:
解释:因为分页需要计算总记录数,所以引入strSqlCount变量,计算总数。
好了,我们的分页控件登场。
分页控件的代码(大家忍着点,使用的是vb.net的代码):
最终的效果图如下:
使用服务器端分页控件,页面加载速度有了大幅度的提高
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK