NonFactors.Grid.Mvc6 v7.2.0服务端分页页码显示异常求助
解决NonFactors.Grid.Mvc6 7.2.0分页显示指定页码数量的问题
问题根源
你当前设置了pager.PagesToDisplay = Model.TotalPages,这会让组件渲染所有页码;另外在_Grid.cshtml里手动修改TotalRows的逻辑会破坏组件的分页计算逻辑,导致页码显示异常。
修复步骤
- 修改分页配置,指定显示的页码数量
在index.cshtml的Pageable配置中,把PagesToDisplay设为你需要的数量(这里是3),而非总页数:
.Pageable(pager => { pager.PageSizes = new Dictionary<Int32, String> { { 10, "10" }, { 20, "20" }, { 50, "50" }, { 100, "100" } }; pager.ShowPageSizes = true; pager.PagesToDisplay = 3; // 固定显示3个页码 pager.CurrentPage = Model.Page; pager.RowsPerPage = Model.PageSize; pager.TotalRows = Model.TotalItems; }) .Sortable()
- 移除错误的TotalRows手动赋值
删除_Grid.cshtml中手动修改TotalRows的代码,保留Partial视图渲染即可:
@if (Model.Pager != null) { @await Html.PartialAsync(Model.Pager.PartialViewName, Model.Pager) }
原理说明
NonFactors.Grid的分页组件会自动根据CurrentPage、PagesToDisplay和TotalRows计算要显示的页码范围:
- 处于第1页时,显示
1、2、3 - 处于中间页(比如第3页)时,显示
2、3、4 - 接近最后一页时,自动调整为显示最后3个页码(比如总页数是6,当前页是5,显示
4、5、6)
确保你的PagingModel中TotalItems是正确的总数据条数,这样组件才能准确计算总页数和页码范围。
内容的提问来源于stack exchange,提问作者Nguen
相关产品推荐
相关产品推荐

