【开源】QuickPager ASP.NET2.0分页控件V2.0.0.4 增加了几个分页算法

================================

欢迎转载,但是请注明出处。本文出自博客园 。谢谢合作!

================================

     

 

 

     最近忙一个项目,没有太多的时间来升级分页控件。不过还是生了一下,V2.0.0.4。变化不是太大,修改了一个属性的名称,增加了两种分页算法,还有两个分页算法的组合方式。

 

     原来的 SetGetDataKind 属性名称改成了 SetRunKind。这个是由于一开始没有规划好,导致了名称的冲突。含义没有变化。

 

     增加了两个分页算法:Max分页和颠倒分页(就是Top的嵌套)。

 

     Max的优点就是简单高效,可以很容易的利用索引,缺点就是,排序字段只能有一个,而且排序字段的值不能有重复的。

 

     颠倒Top法,优点是可以设置多个排序字段(当然一个也可以),缺点呢就是写起来有点复杂(当然这个在分页控件内部处理了),效率比Max要慢一点,但是比表变量要快一点。和Row_Number的分页算法的优势就是可以在SQL Sercer 2000 和 Access、Excel里面使用。Row_Number只能在SQL Server2005里面使用。

 

     这两个分页算法各有优缺点,如何能够取长补短,那该多好呀。这个也不是不可能的呀,于是我又加了两种分页算法,这两个不是单独存在的,而是把现有的两种分页算法“组合”在一起。

 

     Max_TopTop:会根据排序字段的数量来判断,如果是一个排序字段,那么就采用max的分页算法;如果是多个排序字段,那么就采用颠倒top的方法。

 

     Max_TableVar:和上面的类似。有些人喜欢使用表变量,不喜欢top嵌套,更不喜欢颠来倒去的,那么没关系,可以选用这种分页算法。

 

     其他的就像不说了,有空再详细说明一下分页控件的内部结构可采用的设计模式和遵循的原则。

 

     源码下载地址http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html

 

     使用方法请查看以前的帖子,谢谢。有空在整理一下。

 

多种分页算法的调用方法,在属性里面实现。

 

        /**//// 分页算法的实例
        public PageManage.PageSQL ManagerPageSQL
        {
            set { MgrPageSQL = value; }
            get
            {
                PageManage.PageSQL tmp = MgrPageSQL;
                if (tmp == null)
                {
                    switch (SetSQLKind)
                    {
                        case myPageSQLKind.Row_Number:
                            tmp = new JYK.Controls.PageManage.SQL_Row_Number();
                            break;

                        case myPageSQLKind.TableVar:
                            tmp = new JYK.Controls.PageManage.SQL_TableVar();
                            break;

                        case myPageSQLKind.MaxMin:
                            tmp = new JYK.Controls.PageManage.SQL_Max();
                            break;
                   
                        case myPageSQLKind.TopTop :
                            tmp = new JYK.Controls.PageManage.SQL_TopTop();
                            break;

                        case myPageSQLKind.Max_TopTop :
                            if (this.TableOrderColumns.Contains(","))
                            {
                                //多字段排序
                                CommandClass.MsgBox("Max_TopTop2", false);
                                tmp = new JYK.Controls.PageManage.SQL_TopTop();
                            }
                            else
                            {
                                //一个排序字段
                                CommandClass.MsgBox("Max_TopTop1", false);
                                tmp = new JYK.Controls.PageManage.SQL_Max();
                            }
                            break;

                        case myPageSQLKind.Max_TableVar :
                            if (this.TableOrderColumns.Contains(","))
                            {
                                //多字段排序
                                tmp = new JYK.Controls.PageManage.SQL_TableVar();
                            }
                            else
                            {
                                //一个排序字段
                                tmp = new JYK.Controls.PageManage.SQL_Max();
                            }
                            break;
                    }

                    MgrPageSQL = tmp;
                }

                if (tmp.myPage == null)
                    tmp.myPage = this;

                return tmp;
            }
        }

时间: 2024-07-28 20:43:42

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.4 增加了几个分页算法的相关文章

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.7 增加了一个js函数的分页方式。

       昨天在csdn上看到一个人提出来了一种分页的需求,大致是分页控件只负责绘制总页数.上一页.下一页等信息,然后在用户翻页的时候可以触发一个js函数,然后自己实现这个js函数.并不需要提交表单,他想用ajax的方式来获取数据,但是又不想使用微软的ajax.        大概的需求就是这样的(至少我的理解是这样的),不知道吴旗娃的分页控件是不是支持这种需求.不过我的分页控件还没有涉及到ajax,原因是我还不会用ajax,那么是不是可以先实现这种需求呢?想了一下,比较简单,只要继承Pag

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.1——分页控件的源码 (二)

namespace JYK.Controls.PageManage{    /**//// <summary>    /// 生成分页控件需要的SQL语句    /// </summary>    public class PageSQL    {        /**//// <summary>        /// 分页控件的实例        /// </summary>        public JYKPage myPage = null;    

我自己写的一个分页控件(源码和演示代码)PostBack分页版 for vs2003、SQL Server

温馨提示:asp.net分页控件已经升级了,基于.net2.0 ,支持多种数据库.正式命名为:QuickPager Asp.net 2.0 分页控件. 网站:www.natureFW.com 下载:http://www.naturefw.com/down/List1.aspx 在线演示:http://demo.naturefw.com 上一篇随笔:我的分页控件(未完,待续)--控件件介绍及思路 一.分页控件的工作层次    如果按照三层的划分方式来说,应该算作工作在 UI层 和 逻辑层.    

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】

================================ 欢迎转载,但是请注明出处.本文出自博客园 .谢谢合作! ================================   最新版本:V2.0.0.7 .http://www.cnblogs.com/jyk/archive/2008/07/28/1255101.html 下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html   ================

【开源】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

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.1——分页控件的源码(一) 主体

namespace JYK.Controls{    /**//// <summary>    /// 分页控件    /// PageGetData.cs 负责提取数据    /// PageSQL.cs 负责生成SQl语句    /// PageUI.cs 负责分页控件的页面内容    /// </summary>    [DefaultProperty("Text")]    [ToolboxData("<{0}:JYKPage runat

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.6 修改了几个小bug,使用演示。

       由于项目里面还在使用vs2003,还没有使用新的分页控件,所以对新的分页控件的测试还很不到位,遗留了不少的bug,感谢网友试用提出宝贵意见.由于项目正在收尾中,时间也不是太充裕,所以使用说明也不够详细.这次是发一个新的版本,另外主要是说一下,如何在一个页面(一个项目)里访问多种数据库,对多种数据库里的表进行分页.        我用过的数据库有SQL Server2000.SQL Server2005.Access.Excel,而分页控件也支持这四种数据库,那么就以这四种数据库为例

【自然框架】js版的QuickPager分页控件 V2.0

优点: 1.  通过更换模板可以控制各个分页元素(比如首页.末页,页号导航等)的位置和是否显示. 2.  通过更换css可以实现各种UI风格和效果.(附带24套css效果) 3.  Js的方式创建分页UI,不占用服务器资源. 4.  可以通过插件的方式更换各部分js代码.如果自带的js代码不能满足您的需求,那么您自己写的插件实现需要的效果. 5.  Ajax的方式获取记录集,减轻网络负担. 6.  多种调用方式,让"偷懒"和灵活共存. 缺点: 1.  不支持SEO.因为用js和ajax

打造一个通用ASP.NET数据分页控件

asp.net|分页|控件|数据 对于几乎所有的数据表现Web应用来说,组织好数据的显示方式.避免给用户带来混乱的感觉就是最主要的目标之一.每个页面显示20条记录当然是可以接受的,但每页显示10000条记录就很容易给用户带来不便了.将数据分成多个页面显示,即对数据进行分页,是解决此类问题的最常见的办法. 一.慨述 ASP.NET本身只提供了一个支持数据分页的控件,即DataGrid分页控件,不过它比较适合Intranet环境使用,对于Internet环境来说,DataGrid分页控件提供的功能似