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

时间:2016-02-09 17:58:10

标签: c# asp.net gridview paging

我正在尝试使用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的建议事件args?

1 个答案:

答案 0 :(得分:0)

好吧,我无法解释原因,也无法在MSDN文档中找到答案,但正如Ehsan在上述评论中所建议的那样,e.NewPageIndex == -1如果您将GridView1.PageIndex设置为Int32.MaxValue则会强制网格到最后一页。

如果有人碰巧找到了有关其原因或方法的文档,请发表评论!