用于显示datagrid中最后一页的ASP.NET C#按钮在单击时消失

用于显示datagrid中最后一页的ASP.NET C#按钮在单击时消失,c#,asp.net,datagrid,C#,Asp.net,Datagrid,如果将最后一页按钮代码放在if(!this.isPostBack)中,则其工作正常。因此,我做了大量研究,试图了解问题的原因,但无法找出具体问题,在stackoverflow上查看了所有与此相关的线程,但运气不佳。我错过了什么 此外,我无法让Excel导出工作,我尝试了3种不同的方法,所有这些方法都导致了OutOfMemoryException,最新的方法仍在方法中,但已注释掉以供进一步分析 ASPX代码 <%@ Page Language="C#" AutoEventWireup="t

如果将最后一页按钮代码放在if(!this.isPostBack)中,则其工作正常。因此,我做了大量研究,试图了解问题的原因,但无法找出具体问题,在stackoverflow上查看了所有与此相关的线程,但运气不佳。我错过了什么

此外,我无法让Excel导出工作,我尝试了3种不同的方法,所有这些方法都导致了OutOfMemoryException,最新的方法仍在方法中,但已注释掉以供进一步分析

ASPX代码

<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="TestWebFormView.aspx.cs" Inherits="NameSpace.TestWebFormView"
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<%--Form--%>
<form id="form1" runat="server" visible="true">
<asp:Hidden
        <div>
        <%--GridView--%>
           <asp:GridView ID="GridView" AllowPaging="true" PageSize="5" OnPageIndexChanging="GridView_PageIndexChanging" runat="server" AutoGenerateColumns="true" DataKeyNames="Column1, Column2, Column3, Column4, Column5, Column6, Column7, Column8, Column9, Column10, Column11, Column12, Column13, Column14"></asp:GridView>     

        <%--Last Page Button(Not done, Datagrid vanishes on click, Last Page & Export button remain in browser view)--%>
            <asp:Button ID="btnLastPage" runat="server" Text="Jump to last page" OnClick="btnLastPage_Click" />

        <%--Export Button (Not done, OutOfMemoryException, need to somehow divide the workload - Stored Proc in the SQL back end behind the components maybe)--%`>`
            <asp:Button ID="btnExport" runat="server" Text="Exp to Excel" OnClick="btnExport_Click"/>
         </div>
</form>
</body>
</html>

问题在于,您正在将页码设置为In32类型可表示的最大可能数字

protected void btnLastPage_Click(object sender, EventArgs e)
    {
        GridView.PageIndex = Int32.MaxValue;
        DataBind();
    }
那应该是

protected void btnLastPage_Click(object sender, EventArgs e)
    {
        GridView.PageIndex = GridView.PageCount - 1;
        DataBind();
    }

问题是您正在将页码设置为In32类型可表示的最大可能的页码

protected void btnLastPage_Click(object sender, EventArgs e)
    {
        GridView.PageIndex = Int32.MaxValue;
        DataBind();
    }
那应该是

protected void btnLastPage_Click(object sender, EventArgs e)
    {
        GridView.PageIndex = GridView.PageCount - 1;
        DataBind();
    }