听棠.NET

用积极乐观的心态,面对压力
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

轻松实现UltraWebGrid中的分页控制

Posted on 2005-03-10 12:57  听棠.NET  阅读(6690)  评论(26编辑  收藏  举报

大家在使用Grid时,总是报怨Grid的分页功能太弱,不能满足自己的需要,这在MS的DataGrid与NetAdvantage的2004vol3之前的版本都这样,Grid总是要求我们按它的要求进行显示与操作,从NetAdvantage 2004 vol 3开始,UltraWebGrid在分页显示上做了不少加强,我就简单介绍一下,我是如何使用的。
 我想实现的效果图:
 

  其实也是很简单,就是想在左面的地方,显示一些自定义的信息。

 开始吧:
1)拖个UltraWebGrid到界面上,然后后台进行数据绑定我就不说了,大家有自己的方式。
2)套用一种格式
     右击UltraWebGrid,选择Quick Design,然后在弹出窗口中挑选自己喜欢的模板(这跟MS的DataGrid差不多了): 记住要点击:Apply Preset才能生效的。


3)定义分页属性
  UltraWebGrid的分页方式很多,我们展开DisplayLayout->Pager属性,如图:

 设置AllowPaging=True; //这样就可以看到分页了
 我们采用QuickPages的StyleMode,设置QuickPages=4,这是说明,界面上显示为“当前面的前后四个分页数”。
 然后设置我们的Pattern,这个模板就是用来自定义显示效果的,在这个Partern中,提供了一些欲定义的域:
 
我想,大家一看英文就知道什么意思了吧。
为了实现效果图中的样式,我定义为:

<table width=100%><tr><td align=left>页码:[currentpageindex]/[pagecount] 每页:[pagesize]</td><td align=right>[default]<td></tr></table>

[default]最好一定要啊。它是随着不同的分页模式显示不同的方式。

[page:1:第一页]:象这样的话,分页数的1分变成“第一页”的字样,我还没有发现此功能怎么使用比较好。

在这里最让我失望的就是没有RecordCount记录数,我想要实现这个,得用后台的代码自动添加了。
好了,方法就是这么简单,你想定义成什么样,就定义成什么样吧。

4)分页代码实现:
 分页的代码是非常简单的,给UltraWebGrid添加PageIndexChange事件:

private void UltraWebGrid2_PageIndexChanged(object sender, Infragistics.WebUI.UltraWebGrid.PageEventArgs e)
        
{
            
this.UltraWebGrid2.DisplayLayout.Pager.CurrentPageIndex=e.NewPageIndex;
            
this.UltraWebGrid2.DataBind();
        }

好了,一切都好了。当然,你完全可做的更漂亮一些。

我是非常不推荐使用什么第三方的分页控件的,那些控件与Grid的整合都不怎么好,除非你已经用习惯了。
而且第三方的分页控件都是强调一个“高性能”分页的概念,关于这个的必要性,我也讨论过了,必要性很小。请参考:请讨论一下高性能分页的必要性!
而Grid自带的分页,可以非常轻松实现,集成也是最好的。