我正在尝试利用 asp:GridView 的内置分页功能,但当模式设置为 NumericFirstLast 时,似乎无法使“最后一页”按钮起作用。 这是代码示例:
<asp:GridView ID="GridView1" runat="server" AllowSorting="true" AllowPaging="true"
PagerSettings-Mode="NumericFirstLast" PageSize="15"
OnPageIndexChanging="GridView1_PageIndexChanging">
<%-- Column Definitions --%>
</asp:GridView>
// C# Behind
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadGrid();
}
}
public void LoadGrid()
{
// Assign DataSource
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
LoadGrid();
}
发生的情况是,当单击寻呼机上的最后一个按钮时,
e.NewPageIndex
的值为 -1,这意味着赋值会引发异常。 但是,索引更改事件期间的 GridView1.PageCount
为 0,因此我无法使用它来将页面索引设置为计数 - 1。有关此代码发生的情况或为什么我从事件中收到 -1 的任何建议参数?
好吧,我无法解释原因,也无法在 MSDN 文档中找到答案,但正如 Ehsan 在上面的评论中建议的那样,当
e.NewPageIndex == -1
如果将 GridView1.PageIndex
设置为 Int32.MaxValue
时,它会强制网格到最后一页。
如果有人碰巧找到了有关其工作原理/原因的文档,请发表评论!