.NET 网格视图 SetPageIndex 无法按预期工作
本文关键字:工作 网格 视图 SetPageIndex NET | 更新日期: 2023-09-27 17:56:26
SetPageIndex 的 MS 文档和工具提示说
设置 System.Web.UI.WebControls.GridView 控件的页面索引 通过使用行索引
我有一个 GridView,每页有 40 行和 10 行。传递行索引 0 按预期呈现第一页。传递行索引 39 将按预期再次呈现最后一页。
传递行索引 14 应该呈现第二页,它没有显示最后一页。传递行索引为1应选择第一页,它显示第二页。
事实证明,MS 文档与行为不匹配。当 GridView 分页页脚触发 PageIndexChanging 事件时,GridViewPageEventArgs 的 NewPageIndex 属性在小于 GridView.PageCount 的范围内
当通过调用 SetPageIndex 触发 PageIndexChanging 时,NewPageIndex 的值与传入的行索引相同。该值未如文档建议的那样更改。
解决方案是在调用 SetPageIndex 之前从自己的 from 行索引计算页面索引。
if (rowIndex <= 0)
pageIndex = 0;
else
{
pageIndex = (int)Math.Floor((double)rowIndex / (double)myGridView.PageSize);
}
myGridView.SetPageIndex(pageIndex);