![](https://www.jb51.cc/res/2022/10-08/21/725b897a52e08bb0c54f44f4f179700d.jpg)
最近忙一个项目,没有太多的时间来升级分页控件。不过还是生了一下,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=](https://www.jb51.cc/res/2021/06-11/08/08886fe0ace0010c08e39a0e82975d98.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/06-09/17/8171a14008fecb27b9d3760cfca30bbf.jpg)
/**//// 分页算法的实例
![](https://www.jb51.cc/res/2021/06-24/11/66b5d06ca7b85aeb086a74b0bb58cfb7.jpg)
public PageManage.PageSQL ManagerPageSQL
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/06-11/08/08886fe0ace0010c08e39a0e82975d98.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/06-09/17/8171a14008fecb27b9d3760cfca30bbf.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
set
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{ MgrPageSQL = value; }
![](https://www.jb51.cc/res/2021/07-03/17/3fb31563ed21d081feefe89ebad8e7c2.jpg)
get
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/07-03/17/3fb31563ed21d081feefe89ebad8e7c2.jpg)
PageManage.PageSQL tmp = MgrPageSQL;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (tmp == null)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
switch (SetSQLKind)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case myPageSQLKind.Row_Number:
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_Row_Number();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case myPageSQLKind.TableVar:
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_TableVar();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case myPageSQLKind.MaxMin:
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_Max();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case myPageSQLKind.TopTop :
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_TopTop();
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case myPageSQLKind.Max_TopTop :
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (this.TableOrderColumns.Contains(","))
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//多字段排序
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
CommandClass.MsgBox("Max_TopTop2", false);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_TopTop();
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
else
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//一个排序字段
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
CommandClass.MsgBox("Max_TopTop1", false);
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_Max();
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
case myPageSQLKind.Max_TableVar :
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (this.TableOrderColumns.Contains(","))
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//多字段排序
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_TableVar();
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
else
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/8e322420d97a9c39286df4fe14a14c8c.jpg)
![watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=](https://www.jb51.cc/res/2021/07-03/17/346ee6645b9c2b1d08e2f3b5389fe5fe.jpg)
![](https://www.jb51.cc/res/2021/07-03/17/12d50b15d3b0b7ca4ab6216ce927c626.jpg)
{
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
//一个排序字段
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp = new JYK.Controls.PageManage.SQL_Max();
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
break;
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
MgrPageSQL = tmp;
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
if (tmp.myPage == null)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
tmp.myPage = this;
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
![](https://www.jb51.cc/res/2021/06-16/09/0b3a47cc5172b790ed8b5c347db38cd3.gif)
return tmp;
![](https://www.jb51.cc/res/2021/07-03/17/f5c58cb7e6f3e7fe1c883fbf76b320c7.jpg)
}
![](https://www.jb51.cc/res/2021/07-03/17/84a580fbc3feda80d155708451d6ea5c.jpg)
}
原文地址:https://blog.51cto.com/u_15179455/2729743
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。