SetPageIndex的MS documentation和工具提示
设置System.Web.UI.WebControls.GridView控件的页面索引 通过使用行索引
我有一个每行40行10行的GridView。传递行索引0按预期呈现第一页。传递行索引39再次按预期呈现最后一页。
传递14的行索引应该渲染第二页,它没有显示最后一页。传递行索引为1应该选择第一页,它显示第二页。
答案 0 :(得分:2)
原来MS文档与行为不符。当GridView分页脚触发PageIndexChanging事件时,GridViewPageEventArgs的NewPageIndex属性的范围小于GridView.PageCount
当通过调用SetPageIndex触发PageIndexChanging时,NewPageIndex的值与传入的行索引相同。该值未按文档建议的那样进行更改。
解决方案是在调用SetPageIndex之前从自己的行索引计算页面索引。
if (rowIndex <= 0)
pageIndex = 0;
else
{
pageIndex = (int)Math.Floor((double)rowIndex / (double)myGridView.PageSize);
}
myGridView.SetPageIndex(pageIndex);