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

自然框架 2008-07-23 12:42:02
【开源】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/04/25/1170979.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;
}
}
...全文
228 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomiehu 2008-07-31
  • 打赏
  • 举报
回复
分页控件越多越好~
自然框架 2008-07-31
  • 打赏
  • 举报
回复
为什么要这么帮顶呀?
deepinnet 2008-07-30
  • 打赏
  • 举报
回复
支持开源 mark
webdiyer 2008-07-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jyk 的回复:]
最想实现的功能是直接和数据绑定控件绑定

不明白,现在QuickPager就是直接和显示数据库的控件绑定的呀,自己获得数据源,然后绑定控件,你没有数据源怎么绑定控件呀?
[/Quote]

我说的是类似于asp.net 3.5中把DagaPager绑定到ListView的功能,不过绑定listview可以,我想实现的是绑定GridView等控件,但现在没找到实现办法。
冷月孤峰 2008-07-30
  • 打赏
  • 举报
回复
收了先
自然框架 2008-07-30
  • 打赏
  • 举报
回复
最想实现的功能是直接和数据绑定控件绑定

不明白,现在QuickPager就是直接和显示数据库的控件绑定的呀,自己获得数据源,然后绑定控件,你没有数据源怎么绑定控件呀?
webdiyer 2008-07-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jyk 的回复:]
@ webdiyer
晕了,老大,我这里可没有你那里人气那么兴旺呀。

对了,你不会把你的分页控件也向我的这个发展吧,那我就一点希望都没有了呀。
[/Quote]
放心,不会的,AspNetPager以后最想实现的功能是直接和数据绑定控件绑定,但不会把数据访问功能集成的控件中,至少到目前为止从没有过这样的想法。愿你的控件越做越好!
自然框架 2008-07-26
  • 打赏
  • 举报
回复
@ webdiyer
晕了,老大,我这里可没有你那里人气那么兴旺呀。

对了,你不会把你的分页控件也向我的这个发展吧,那我就一点希望都没有了呀。
webdiyer 2008-07-24
  • 打赏
  • 举报
回复
支持开源,帮顶,也欢迎大家有空看看我的 AspNetPager 分页控件:http://www.webdiyer.com
编程有钱人了 2008-07-24
  • 打赏
  • 举报
回复
jyk和webdiyer 的BLOG 我经常去

呵呵
支持 开元
amandag 2008-07-23
  • 打赏
  • 举报
回复
收藏
自然框架 2008-07-23
  • 打赏
  • 举报
回复
现在在cnblogs.com里面混呢,欢迎去看看

jyk.cnblogs.com
编程有钱人了 2008-07-23
  • 打赏
  • 举报
回复
jyk又见到你了

UP


支持
stning 2008-07-23
  • 打赏
  • 举报
回复
up

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧