【开源】QuickPager ASP.NET2.0分页控件V2.0.0.4 增加了几个分页算法-阿里云开发者社区

开发者社区> 金色海洋> 正文

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

 

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

 

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

 

img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif        /**//// 分页算法的实例
        public PageManage.PageSQL ManagerPageSQL
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif        
{
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
set { MgrPageSQL = value; }
            
get
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif            
{
                PageManage.PageSQL tmp 
= MgrPageSQL;
                
if (tmp == null)
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                
{
                    
switch (SetSQLKind)
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                    
{
                        
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(","))
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                            
{
                                
//多字段排序
                                CommandClass.MsgBox("Max_TopTop2"false);
                                tmp 
= new JYK.Controls.PageManage.SQL_TopTop();
                            }

                            
else
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                            
{
                                
//一个排序字段
                                CommandClass.MsgBox("Max_TopTop1"false);
                                tmp 
= new JYK.Controls.PageManage.SQL_Max();
                            }

                            
break;

                        
case myPageSQLKind.Max_TableVar :
                            
if (this.TableOrderColumns.Contains(","))
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                            
{
                                
//多字段排序
                                tmp = new JYK.Controls.PageManage.SQL_TableVar();
                            }

                            
else
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif                            
{
                                
//一个排序字段
                                tmp = new JYK.Controls.PageManage.SQL_Max();
                            }

                            
break;
                    }


                    MgrPageSQL 
= tmp;
                }


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

                
return tmp;
            }

        }

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询
    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------       本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的属性的中文解释(翻译) 一,jar包   com.
4747 0
DL之RetinaNet:基于RetinaNet算法(keras框架)利用resnet50_coco数据集(.h5文件)实现目标检测(二)
DL之RetinaNet:基于RetinaNet算法(keras框架)利用resnet50_coco数据集(.h5文件)实现目标检测
30 0
DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
15 0
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
28 0
[leetcode/lintcode 题解] 算法面试真题详解:给树浇水的时间
[leetcode/lintcode 题解] 算法面试真题详解:给树浇水的时间
109 0
Struts2获取easyUI datagrid 分页参数page和rows
Struts2获取easyUI datagrid 分页参数page和rows   用pageHelper分页时,只要是能够获取前台传来的两个参数page和rows基本就完成了很大一部分。 获取方法:定义两个变量page和rows,设置对应的getter,setter方法,在方法中直接获取就能打得。
1175 0
+关注
金色海洋
算法相关技术专家
323
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载