ASP.NET GridView 分页 - 处理最后一页按钮

ASP.NET GridView Paging - Handle Last Page Button

我正在尝试使用 asp:GridView 的内置分页功能,但当模式设置为 NumericFirstLast 时似乎无法使 "Last Page" 按钮工作。这是代码示例:

<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 时强制网格到最后一页。

如果有人碰巧找到 why/how 的文档,请 post 发表评论!