一、分页控件的工作层次
如果按照三层的划分方式来说,应该算作工作在 UI层 和 逻辑层。
在分页控件内部会调用“数据访问函数库”来访问数据库,得到记录集之后再绑定到指定的显示数据的控件。
当然这里只是打个比方,我并没有按照三层的规范来写这个分页控件,我的目的只是想少写点代码。
二、适用范围
目前适用于 vs2003 和 SQL Server 2000
因为是在这两个环境下开发的,尤其是对于 SQL Server 2000 进行了一些优化。
当然也是可以在 vs2005 和 SQL Server 2005 下使用,只是没有针对 05系列 进行优化。
可以在vs2005的项目里引用 分页控件的dll文件,但是可能需要在电脑上安装 .net1.1 的框架。
三、优点
1、不必使用存储过程就可以达到高效率的分页效果。
2、使用两种(或者多种)分页算法,来达到效率和通用的完美统一。当然也可以使用不同的算法应对不同的数据库。
3、按需所取。如果一页显示20条记录,那么分页控件只会从数据库里提取20条数据。
4、支持查询条件,您可以很方便的添加查询条件,实现复杂的检索功能。
5、利用ViewState 来保存一些信息,节省服务器的资源。
比如在第一次显示数据的时候会统计总记录数,然后把总记录数保存到ViewState里面,当点击下一页的时候不用重新统计。
还有其他的信息也会保存到 ViewState 里面。
6、在百万级数据下也有很好的表现,下面有测试数据,不信的话,可以下载demo亲自测试。
7、使用方便,只需要设置几个属性就可以,不必处理分页时产生的事件。
8、支持多种显示数据的控件,比如DataGrid、DataList、Reapeter、DropDownList等。只要是能够使用DataTable绑定的控件都支持。
四、缺点
1、多表联合查询的时候需要使用视图。就是要先建立一个视图。
2、第一种分页算法不要求数据表一定要有主键,但是第二种分页算法要求表必须有主键,而且不能使联合主键。
3、不能很灵活的应对多种数据库。
4、内部代码比较混乱,05年底写的,一直想整理,但是都没有开始整理,只是做了小的升级和修改bug。
详细请见:
http://www.cnblogs.com/jyk/archive/2008/04/29/1175808.html