如何使用asp.net web页面自定义分页控件
假如数据库有10000条记录,默认SQL是分页把这10000条记录都取出来,然后利用GridView内置功能分页,显示出来,那么只显示20条,SQL也是取出1000条,而自定义分页则是利用SQL,使用20条,就从数据库里去20条,其他的不取,所以,效率较高,但是实现稍微麻烦点。
假设你要实现类似如下一个自定义产品分页列表
数据库主要设计如下字段
那么自定义SQL分页需要思考如下几个问题:
(1)总共有多少条记录。(可用 select count(*) from Products 得到 10000条)
(2)页面大小NumRows。(也就是每页记录数,例如 20条也一页)
由上面(1)和(2)就可以得出可以分多少页。 10000/20=500页。
(3)当前是第几页 startRowIndex。
例如用户点击到第3页,每页20条,那么第4页就是 从 3*20+1=61开始计算。
知道了上面参数,还需要知道SQL提供了一个 Row_Number函数,他可以把数据库每行增加一个索引,通过比较 Row在 @startRowInx 和 @StartRowIndex+@NumRows-1 就可以获取分页的记录数。具体如下
当取到上面的数据后,就可以自己build上一页,下一页等页面了。