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

 

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

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

        /**//// 分页算法的实例

        public PageManage.PageSQL ManagerPageSQL

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

        

{

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

            set 

{ MgrPageSQL = value; }

            get

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

            

{

                PageManage.PageSQL tmp = MgrPageSQL;

                if (tmp == null)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

                

{

                    switch (SetSQLKind)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

                    

{

                        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(","))

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

                            

{

                                //多字段排序

                                CommandClass.MsgBox("Max_TopTop2", false);

                                tmp = new JYK.Controls.PageManage.SQL_TopTop();

                            }

                            else

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

                            

{

                                //一个排序字段

                                CommandClass.MsgBox("Max_TopTop1", false);

                                tmp = new JYK.Controls.PageManage.SQL_Max();

                            }

                            break;


                        case myPageSQLKind.Max_TableVar :

                            if (this.TableOrderColumns.Contains(","))

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

                            

{

                                //多字段排序

                                tmp = new JYK.Controls.PageManage.SQL_TableVar();

                            }

                            else

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

                            

{

                                //一个排序字段

                                tmp = new JYK.Controls.PageManage.SQL_Max();

                            }

                            break;

                    }


                    MgrPageSQL = tmp;

                }


                if (tmp.myPage == null)

                    tmp.myPage = this;


                return tmp;

            }

        }


原文地址:https://blog.51cto.com/u_15179455/2729743

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)