DevExpress中GridControl的分页显示方法

在网上搜索了下,大多使用自定义方法去计算实现,其实DevExpress提供了分页控件XPPageSelector和导航控件DataNavigator可以很方便地实现分页及导航控制。

添加控件

这里我用到了XPCollection、PageSelector、DataNavigator

  • XPCollection用于绑定数据源
  • PageSelector的Collection绑定XPCollection,PageSize用于指定一页中多少个数据
  • DataNavigator的DataSource选定PageSelector

添加切换页按钮及事件

DataNavigator里默认的按钮我没有试出怎么用来,当更新数据源时,无法切换,因此先将其Bottons中选择相应按钮并隐藏掉(见上图第1行的属性),然后添加自己的按钮后就应用正常了。

事件代码

//选择不同树节点时,切换不同的数据源
xpcParts = new XPCollection(typeof(Part), CriteriaOperator.Parse("PartNode.Oid=?", e.Node.GetValue("Oid")));
xpPartsPageSelector = new XPPageSelector(xpcParts);
xpPartsPageSelector.PageSize = 10;
dataNav.DataSource = xpPartsPageSelector;
gdcPart.DataSource = xpPartsPageSelector;
dataNav.TextStringFormat = $"第 {xpPartsPageSelector.CurrentPage + 1} 页 共 {xpPartsPageSelector.PageCount} 页";
gdvPart.RefreshData();
//点击各导航按钮时,切换不同的页
private void dataNavigator1_ButtonClick(object sender, NavigatorButtonClickEventArgs e)
{
    switch (e.Button.Hint)
    {
        case "第1页":
            xpPartsPageSelector.CurrentPage = 0;
            dataNav.TextStringFormat = $"第 {xpPartsPageSelector.CurrentPage + 1} 页 共 {xpPartsPageSelector.PageCount} 页";
            break;
        case "上一页":
            if (xpPartsPageSelector.CurrentPage > 1)
            {
                xpPartsPageSelector.CurrentPage--;
                dataNav.TextStringFormat = $"第 {xpPartsPageSelector.CurrentPage + 1} 页 共 {xpPartsPageSelector.PageCount} 页";
            }
            break;
        case "下一页":
            if (xpPartsPageSelector.CurrentPage < xpPartsPageSelector.PageCount - 1)
            {
                xpPartsPageSelector.CurrentPage++;
                dataNav.TextStringFormat = $"第 {xpPartsPageSelector.CurrentPage + 1} 页 共 {xpPartsPageSelector.PageCount} 页";
            }
            break;
        case "最后一页":
            xpPartsPageSelector.CurrentPage = xpPartsPageSelector.PageCount - 1;
            dataNav.TextStringFormat = $"第 {xpPartsPageSelector.CurrentPage + 1} 页 共 {xpPartsPageSelector.PageCount} 页";
            break;
    }
}

希望可以帮到你!

posted @ 2025-01-07 11:18  东经115  阅读(486)  评论(0)    收藏  举报