【开源】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 请注意后面的参数。


分页控件的源代码下载网址: 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;

 
相关文章
|
1月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
37 8
|
1月前
|
SQL 开发框架 数据库
".NET开发者的超能力:AgileEAS.NET ORM带你穿越数据库的迷宫,让数据操作变得轻松又神奇!"
【8月更文挑战第16天】AgileEAS.NET是面向.NET平台的企业应用开发框架,核心功能包括数据关系映射(ORM),允许以面向对象方式操作数据库,无需编写复杂SQL。通过继承`AgileEAS.Data.Entity`创建实体类对应数据库表,利用ORM简化数据访问层编码。支持基本的CRUD操作及复杂查询如条件筛选、排序和分页,并可通过导航属性实现多表关联。此外,提供了事务管理功能确保数据一致性。AgileEAS.NET的ORM简化了数据库操作,提升了开发效率和代码可维护性。
44 5
|
1月前
|
存储 关系型数据库 MySQL
mysql数据库查询时用到的分页方法有哪些
【8月更文挑战第16天】在MySQL中,实现分页的主要方法包括:1)使用`LIMIT`子句,简单直接但随页数增加性能下降;2)通过子查询优化`LIMIT`分页,提高大页码时的查询效率;3)利用存储过程封装分页逻辑,便于复用但需额外维护;4)借助MySQL变量实现,可能提供更好的性能但实现较复杂。这些方法各有优缺点,可根据实际需求选择适用方案。
126 2
|
2天前
|
存储 缓存 供应链
.NET 开源工业级移动端仓库管理系统
【9月更文挑战第17天】.NET 开源工业级移动端仓库管理系统是一款基于 .NET 技术的高效仓库管理解决方案,具备开源免费、工业级品质、移动端支持等特性,提供全面的仓库管理功能,如入库、出库、库存及报表统计,并采用模块化设计,便于定制和扩展,显著提升仓库管理效率与准确性。
|
14天前
|
Linux C# Android开发
一个开源、跨平台的.NET UI框架 - Avalonia UI
一个开源、跨平台的.NET UI框架 - Avalonia UI
|
14天前
|
前端开发 关系型数据库 MySQL
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
|
14天前
|
机器学习/深度学习 人工智能 算法
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
|
17天前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
49 6
|
14天前
|
API C# Windows
一个.NET开源、现代、轻量级的文本编辑器
一个.NET开源、现代、轻量级的文本编辑器
|
14天前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架