C# 在Gridview中分页,可以';我无法访问其他页面

C# 在Gridview中分页,可以';我无法访问其他页面,c#,gridview,paging,C#,Gridview,Paging,我有一个web应用程序,每次我上传Excel文件时,它的内容都会出现在Gridview中,Gridview与DataTable绑定在一起。 使用这些属性,我将分页和排序设置为true 当我使用fileupload和submit按钮输入文件时,web应用程序的底部会显示页码。 它也能正确排序(我的页面大小设置为10),但是,当我点击下一个页面(例如第2页)时,在我上传另一个文件并再次点击提交之前,不会显示任何内容 这是我构建表的代码: protected void AddResultToGrid(

我有一个web应用程序,每次我上传Excel文件时,它的内容都会出现在Gridview中,Gridview与DataTable绑定在一起。 使用这些属性,我将分页和排序设置为true

当我使用fileupload和submit按钮输入文件时,web应用程序的底部会显示页码。 它也能正确排序(我的页面大小设置为10),但是,当我点击下一个页面(例如第2页)时,在我上传另一个文件并再次点击提交之前,不会显示任何内容

这是我构建表的代码:

protected void AddResultToGrid(String url, String result)
{
  data = (DataTable)Session["URLSessionData"];
  DataRow dr = data.NewRow();
  dr[0] = url;
  dr[1] = result;
  data.Rows.Add(dr);

  gdvResults.DataSource = data;
  gdvResults.DataBind();
  Session["URLSessionData"] = data;
}
这是页面加载:

protected void Page_Load(object sender, EventArgs e)
{
  lblFiup.Text = "";

    data.Columns.Add("URL", typeof(String));
    data.Columns.Add("Status", typeof(String));
    gdvResults.DataSource = data;
    gdvResults.DataBind();

  gdvResults.AllowPaging = true;
  gdvResults.AllowSorting = true;
  if (!Page.IsPostBack)
  {

    Session["URLSessionData"] = data;
  }
}
我认为这可能与页面索引有关。。。但我不确定。 以下是我的页面索引更改方法:

    protected void gdvResults_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {

        e.NewPageIndex = e.NewPageIndex + 1;
        DataBind();

    }
提前感谢您的帮助(:



好的,我为我的程序制作了一个模拟数据表。它的行为就像你描述的那样。第二页总是空白的。我将数据表设置为静态,它就工作了。下面是我的最终代码:

namespace EorManager
{
public partial class _Default : System.Web.UI.Page
{
    //Must be static
    static DataTable data = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {
        //On FIRST page load I call my BindGridview method. 
        //Afterward I only call my BindGridview method from events
        if (!IsPostBack)
        {
            //make a column
            DataColumn myDataColumn = new DataColumn();
            myDataColumn.DataType = Type.GetType("System.String");
            myDataColumn.ColumnName = "url";
            data.Columns.Add(myDataColumn);

            //add rows
            DataRow row;
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.google.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.facebook.com";
            data.Rows.Add(row);
            row = data.NewRow();
            row["url"] = "www.stackoverflow.com";
            data.Rows.Add(row);


            BindGridview();
        }
    }


    private void BindGridview()
    {

        grdEOR.DataSource = data;
        grdEOR.DataBind();

    }

    protected void grdEor_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grdEOR.PageIndex = e.NewPageIndex;
        BindGridview();

    }
}
}
这是我的GridView代码:

<asp:GridView ID="grdEOR" runat="server" BackColor="White"
            BorderColor="#999999" OnPageIndexChanging="grdEor_PageIndexChanging"
            BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical"
            AllowPaging="True"
            PageSize="15" 
                                          >
            <PagerSettings Mode="NumericFirstLast" />
            <FooterStyle BackColor="#CCCCCC" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                        <EditRowStyle BackColor="#2D41F7" />
            <AlternatingRowStyle BackColor="#CCCCCC" BorderColor="Black" 
                BorderStyle="Solid" BorderWidth="5px" />
        </asp:GridView>

<asp:GridView ID="grdEOR" runat="server" BackColor="White"
            BorderColor="#999999" OnPageIndexChanging="grdEor_PageIndexChanging"
            BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical"
            AllowPaging="True"
            PageSize="15" 
                                          >
            <PagerSettings Mode="NumericFirstLast" />
            <FooterStyle BackColor="#CCCCCC" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                        <EditRowStyle BackColor="#2D41F7" />
            <AlternatingRowStyle BackColor="#CCCCCC" BorderColor="Black" 
                BorderStyle="Solid" BorderWidth="5px" />
        </asp:GridView>