欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » SmartGrid使用教程 » 正文

为SmartGrid设置分页

创建时间:2012年03月13日 16:04  阅读次数:(3374)
分享到:

首先了解与SmartGrid分页相关的属性:

属性名 含义
AllowPaging 设置是否允许分页,默认不允许分页。
AllowCustomPaging 获取或设置指示是否启用自定义分页,默认不启用自定义分页。
PageSize 获取或设置要在 SmartGrid 控件的单页上显示的项数。默认值为10。
PagerPosition 指定访问 SmartGrid 控件中各种页的页导航位置。System.Web.UI.WebControls.PagerPosition类型(枚举),可取值:Bottom、Top、TopAndBottom
PagerHeight 获取或设置分页条的高度,默认值是24px。
PagerHorizontalAlign 指定页导航按钮的对齐方式。
PagerLinkDisabledStyleName 分页条上灰化的导航按钮的样式名称,如在显示第一页时,第一页、首页应该是灰化的,默认样式名称是pagerLinkDisabledStyle。
PagerStyleName 分页条的样式名称,该样式主要用来设置分页条Table的样式,默认是pagerStyle。
PageCount 获取或设置显示 SmartGrid 控件中各项所需的总页数。
VirtualItemCount 获取或设置在使用自定义分页时 SmartGrid 控件中的实际项数。

如果要实现在SmartGrid控件中分页,必然注意以下几点:
1,必须设置SmartGrid的属性AllowPaging=”True”才允许分页。
2,应在Page_Load事件中绑定数据(不管Page.IsPostBack状态),否则将出现“无效的当前页索引”错误。

如果要实现自定义分页,必须设置AllowCustomPaging=true,并且将记录数赋值给VirtualItemCount属性,可以扩充SmartGrid的PageIndexChanged事件(Page.OnInit事件中声明委托)。

override protected void OnInit(EventArgse)
{
this.SmartGrid1.PageIndexChanged+= new SmartGridPageChangedEventHandler(SmartGrid1_PageIndexChanged);
}

SmartGridPageChangedEventHandler的委托原型:
public delegate void SmartGridPageChangedEventHandler(object source, SmartGridPageChangedEventArgse);

SmartGridSearchEventArgs包含1个属性:
Int NewPageIndex

SmartGridSearchEventArg构造函数:SmartGridPageChangedEventArgs(int newPageIndex)

例:SmartGrid1_PageIndexChanged事件代码
private voidSmartGrid1_PageIndexChanged(object sender,SmartGridPageChangedEventArgs e)
{
ViewState["SmartGridPageIndex"]= e.NewPageIndex.ToString();
LoadData(e.NewPageIndex);
}

例:Page_Load事件代码
this.SmartGrid1.VirtualItemCount = LoadDataCount();//获取记录总数
string pageIndex;
if (ViewState["SmartGridPageIndex"]!= null)
{
pageIndex = ViewState["SmartGridPageIndex"].ToString();
}
else
{
pageIndex = "0";
}
LoadData(Int32.Parse(pageIndex));//装载数据

来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论13条
  • #1楼  评论人:匿名  评论时间:2012-8-21 9:40:59
  • 如果包含可编辑列,数据量几千条就会出现不能响应,请问lz有没有提高性能的方法。在不分页的前提下。
  • #2楼  评论人:Wyf  评论时间:2012-8-21 11:48:19
  • 去掉列中ReadOnly="true"属性,可以显著提高性能。
    如果数据量太多,可以试试用懒加载。
  • #3楼  评论人:匿名  评论时间:2012-8-24 10:42:53
  • 有没有办法在非浏览状态下相应双击事件呢。
  • #4楼  评论人:Wyf  评论时间:2012-8-25 14:44:03
  • 没有用过双击事件,不好意思。
  • #5楼  评论人:匿名  评论时间:2012-8-28 17:04:42
  • 在编辑状态,光标处于某一个文本框内,这个时候通过一个按钮触发事件,重新加载xml数据源,数据源会看不到,整个表格只能看到这个文本框。这个过程是通过客户端处理的。
  • #6楼  评论人:Wyf  评论时间:2012-8-29 17:15:25
  • 有没有重新绑定数据呢?换成后台绑定试试看。
  • #7楼  评论人:匿名  评论时间:2012-8-30 9:14:51
  • 后台绑定没问题,但是页面会刷新,就是想能不能解决这个问题。如果能解决就太好了,看页面源码都是有数据的,但是后面就看不到数据了,只看到那个文本框。
  • #8楼  评论人:Wyf  评论时间:2012-8-30 9:57:56
  • 如果仅是为了解决刷新问题,使用UpdatePanel就好了。
  • #9楼  评论人:匿名  评论时间:2012-8-31 10:59:42
  • 就是想客户体验好些,现在这样,不仅仅是数据源看不到,后台在这个时候取数据源也是取不到。现在是2个grid,点击一个grid然后给另外一个grid赋值。
  • #10楼  评论人:Wyf  评论时间:2012-8-31 11:33:59
  • 客户端不行就改在后台重新绑定吧,刷新的问题,可以使用updatepanel来解决。
  • #11楼  评论人:匿名  评论时间:2012-8-31 11:41:13
  • 现在好像可以了,先调用blur,但是貌似这样第一个grid后面要获得焦点得点击2次,虽然看起来已经有行被选中,但是没效果。
  • #12楼  评论人:匿名  评论时间:2012-8-31 11:47:05
  • 解决了,重新让第一个grid当前行获得一次焦点,谢谢lz
  • #13楼  评论人:Wyf  评论时间:2012-8-31 15:07:32
  • 不客气,解决了就好。
发表评论:
留言人:
内  容:
请输入问题 77+50=? 的结果(结果是:127)
结  果: