拼吾爱程序人生.Net编程Asp.Net 支持多数据库的 Asp.Net 2.0 的分页控件

1  /  1  页   1 跳转 查看:621

支持多数据库的 Asp.Net 2.0 的分页控件

支持多数据库的 Asp.Net 2.0 的分页控件

文/jyk  出处/博客园

源码下载:
 附件: 您所在的用户组无法下载或查看附件

下载文件里面由一个测试网页:http://localhost:5561/test/Testlist.aspx?fid=1
请注意后面的参数。


环境说明:

IDE:vs2008。

Framework:.net 2.0。

数据源:各种数据库。

形式:服务器控件,引用DLL即可。


功能说明:

分页的方式显示提取数据。包括UI的绘制、分页算法(根据属性组合成SQL语句)、提取数据、绑定控件、计算总记录数(可以自动保存,以提高效率)

两种分页方式 PostBack 和 URL。(暂时只支持Postback分页。)


贴两个图先:

 附件: 您所在的用户组无法下载或查看附件


 附件: 您所在的用户组无法下载或查看附件



优点:

1、支持多重数据库

      这个要感谢 数据访问函数库(其实是ADO.net2.0),还有就是 PageSQL 这个类。

2、使用简单,能在控件内部实现的都实现了,外面只需要设置属性就可以实现分页的功能,不需要处理翻页时产生的事件。

最少只需要写四行代码就可以搞定。

Code


3、两种分页方式 PostBack 和 URL,可以随时切换。

4、不使用存储过程,便于分页算法的升级。还可以灵活设置查询条件。(不使用存储过程也可以达到很高的效率)

        分页控件终于升级到了.net2.0,虽然功能上没有增加,但是修改了大部分的内部代码。原先的是基于 .net1.1 的,升级后基于 .net2.0。虽然现在 .net3.5都出来了,但是为了能够更“兼容”一些,所以还是采用了.net2.0。

        原来的代码是写在了一个.cs文件里面,看起来比较混乱,层次不够分明,在想扩展的时候就比较麻烦,现在按照“职责”分成了几块,每一块负责一个功能。

PageSQL 负责生成分页用的 SQL语句,
PageGetData 负责到数据库里(通过数据访问函数库)提取数据,然后填充到集合(比如DataTable)里面,
PageUI 负责UI的绘制。

这样就分工明确,便于替换,比如现在的分页控件默认的数据库是 SQL Server2005,那么目前提供的分页算法是利用Row_Number()来实现的,而 SQL Server2000 里没有这个函数,那么就要换一个分页算法,这时就可以继承PageSQL类,实现一个针对SQL Server2000的分页算法(难道是传说中的多态)。这样就可以很方便的更换数据库和分页算法(同一种数据库,多种分页算法)(难道是传说中的对修改关闭?)。


使用方法和常用的属性说明

Code


缺点:

由于时间仓储,有些功能还不完善。提供源代码,感兴趣的话,欢迎一起讨论:)

目前使用的分页算法
set nocount on;
            with t_pager as (
              select *,rn = ROW_NUMBER() OVER (ORDER BY id desc) FROM test_indexorder
            )
            SELECT id,name,content,co1,co2,co3,co4,co5 from t_rn WHERE rn between 19007 and 19057;

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

ASP.NET MVC Preview 5 演示Demo #8 实现JQuery结合Json进行后台数据Ajax方式验证
让Asp.NET的DataGrid可排序、可选择、可分页
Session丢失原因与解决方案小结
Upload Files in ASP.NET 2.0
[DNN中的Bug]在时区编辑器中存在的一个Bug
ASP.Net Web Page深入探讨二
在Web开发中绑定数据的三种方法
DataGrid学习六
技巧:.NET中加密与解密QueryString的方法
一个Web文件上传的C#源代码
 

回复:支持多数据库的 Asp.Net 2.0 的分页控件

源码:
主体:

Code


 

回复:支持多数据库的 Asp.Net 2.0 的分页控件

源码:
页面:

Code


 
1  /  1  页   1 跳转

快速回复帖子

标题
禁用 URL 识别
禁用表情
禁用 Discuz!NT 代码
使用个人签名
  [完成后可按 Ctrl+Enter 无刷新发布]