You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Server下Syncfusion DataGrid服务端分页无法正确显示总页数

解决Syncfusion Blazor Grid分页页码显示不正确的问题

问题根源分析

你的代码存在两个核心问题导致分页显示异常:

  1. PageCount计算逻辑错误:当前的计算公式不符合分页页码的数学逻辑,得出了错误的总页数。
  2. Syncfusion Grid未获取总记录数:Grid需要知道数据库中设备的总条数才能正确渲染分页控件的页码数量,你没有给GridPageSettings绑定TotalRecordsCount属性。

具体修复步骤

1. 修正PageCount计算逻辑

替换OnInitializedAsync中的PageCount计算代码:
原错误代码:

PageCount = (totalCount % PageSize) > 0 ? (totalCount / PageSize) - totalCount % PageSize : totalCount / PageSize;

改为以下两种正确方式之一:

// 方式一:整数运算实现向上取整
PageCount = totalCount % PageSize == 0 ? totalCount / PageSize : totalCount / PageSize + 1;

// 方式二:用Math.Ceiling更简洁直观
PageCount = (int)Math.Ceiling((double)totalCount / PageSize);

2. 给Grid分页设置绑定总记录数

修改GridPageSettings标签,添加TotalRecordsCount绑定:

<GridPageSettings PageSize="@PageSize" PageCount="@PageCount" TotalRecordsCount="@totalCount"></GridPageSettings>

这一步让Grid明确知晓总数据量,从而正确计算并展示分页页码。

3. 处理分页切换事件,加载对应页数据

在SfGrid标签中添加OnPageChanged事件监听,用于用户切换页码时加载对应页的数据:

<SfGrid @ref="DefaultGrid" DataSource="@Equipments" EnableRtl="true" class="table-eq" AllowResizing="true" AllowSorting="true" AllowFiltering="true" AllowPaging="true" Height="@TableHeight.ToString()" OnPageChanged="OnPageChanged">

然后在@code块中添加事件处理方法:

private async Task OnPageChanged(PageChangedEventArgs args)
{
    CurrentPage = args.CurrentPage;
    // 加载当前选中页的数据
    Equipments = await equipmentServices.GetPagedEquipmentsData(CurrentPage, PageSize);
    // 通知组件刷新UI
    StateHasChanged();
}

4. 优化异步调用(可选但推荐)

在OnInitializedAsync中无需用Task.Run包装异步方法调用,直接await即可:

protected override async Task OnInitializedAsync()
{
    totalCount = await equipmentServices.GetTotalEquipmentsCount();
    Equipments = await equipmentServices.GetPagedEquipmentsData(CurrentPage, PageSize);
    PageCount = (int)Math.Ceiling((double)totalCount / PageSize);
}

5. 验证总记录数获取方法

确保GetTotalEquipmentsCount方法正确返回数据库中所有设备的总条数,若后续添加过滤条件,需同步更新该方法与分页逻辑。

完成以上修改后,Grid就能正确显示总页数,且切换页码时会加载对应的数据。

内容的提问来源于stack exchange,提问作者Alex Wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:45:34