【开源】QuickPager ASP.NET2.0分页控件V2.0.0.1——支持多种数据库。让分页更加简单。

分页控件的源代码下载网址:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html

(在网页的下面)

下载文件里面由一个测试网页:http://localhost:5561/test/Testlist.aspx?fid=1

请注意后面的参数。

在webconfig里面修改连接字符串和数据库类型。DataType ---- 1: MS SQL ;2:Oledb;3:ODBC。

<appSettings>
    <add key="DataType" value ="1"/>
  </appSettings>
    <connectionStrings>
        <add name="ConnStr" connectionString="Data Source=.;Initial Catalog=*** ;persist security info=False;user id=sa;pwd=;" providerName="System.Data.SqlClient"/>
    </connectionStrings>

环境说明: IDE:vs2008。

Framework:.net 2.0。

数据源:各种数据库。 形式:服务器控件,引用DLL即可。

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

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

贴两个图先:

优点:

1、支持多重数据库

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

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

myPage.ControlGridID = GV.ID;    //设置显示数据的控件的ID值。
myPage.TableName = " TableName";    //表名或者字段名
myPage.TableOrderColumns = "OrderByColumns";    //排序字段
myPage.BindFirstPage();                         //显示第一页的数据

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的分页算法(难道是传说中的多态)。这样就可以很方便的更换数据库和分页算法(同一种数据库,多种分页算法)(难道是传说中的对修改关闭?)。

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

public partial class TestList : BaseClass.BasePageList 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            myPage.ControlGridID = GV.ID;       //设置显示数据的控件的ID值。

            if (!Page.IsPostBack)
            {
                //属性会保存在ViewState里面,所以在第一次访问的时候赋值就可以了。
                SetPageInfo();
            }
        }

        private void SetPageInfo()
        {
            myPage.TableName = " TableName";                //表名或者字段名
            //myPage.TableShowColumns = "*";                //显示的字段
            //myPage.TableIDColumns = "MasteID";            //主键
            myPage.TableOrderColumns = "OrderByColumns";    //排序字段
            myPage.PageSize = 10;                           //一页的记录数
            myPage.NaviCount = 5;                           //页号导航的数量
            myPage.TableQuery = "";                         //查询条件

            myPage.BindFirstPage();                         //显示第一页的数据
        }
    }

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

http://www.cnblogs.com/jyk/archive/2008/06/25/1229967.html http://www.cnblogs.com/jyk/archive/2008/06/25/1229973.html 目前使用的分页算法  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;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch Javascript API增删改查

查询 根据索引、类型、id进行查询: client.get({ index:'myindex', type:'mytype', ...

21390
来自专栏Jerry的SAP技术分享

利用Chrome的Heap Snapshot功能分析一个时间段内的内存占用率

在下图测试代码第13行和第16行设断点. 以调试方式运行,首先断点在第13行处触发:

24370
来自专栏影子

go web开发 (gin&gorm) 之DB配置及DAO的基本使用

  在正式进入主题前,先说说框架的现状,个人用的是gin-gonic框架,这是个在校大学生写的基于go语言的高性能web框架,在此之前我对比过beego 、 i...

47630
来自专栏pangguoming

PowerDesigner使用教程|使用方法

PowerDesigner安装方法: http://dev.firnow.com/course/3_program/java/javajs/20090908/...

54960
来自专栏李蔚蓬的专栏

实战LitePal(Android_Persistent Technology)

1.Debugexperience about SQLite & LitePal:创建数据库闪退?注意小括号

19430
来自专栏乐沙弥的世界

Oralce 10g 使用DBCA创建数据库

   Oracle提供了DBCA来创建数据库,对于初学者来说使用DBCA创建数据库简化了很多工作和设置,直接在交互界面即可实现所有的功能。然而对于实际的生产数据...

8020
来自专栏信安之路

SQL 注入类型详解

笔者最初学习 SQL 注入时,大家对于 SQL 注入类型的归类让我头脑一片混乱,后来笔者发现其实大家都是根据 sqlmap 上给出的“类型”来划分的。所以,今天...

49900
来自专栏码农分享

代理模式(Proxy)

转载 https://blog.csdn.net/lovelion/article/details/8228042

13120
来自专栏coder修行路

Go基础之--操作Mysql(一)

关于标准库database/sql database/sql是golang的标准库之一,它提供了一系列接口方法,用于访问关系数据库。它并不会提供数据库特有的方法...

61990
来自专栏芋道源码1024

分布式事务 TCC-Transaction 源码解析 —— 事务存储器

本文主要基于 TCC-Transaction 1.2.3.3 正式版 1. 概述 2. 序列化 2.1 JDK 序列化实现 2.2 Kyro 序列化实现 2.3...

50060

扫码关注云+社区

领取腾讯云代金券