C# 使用Datatable的Gridview分页-不工作

C# 使用Datatable的Gridview分页-不工作,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个gridview,它有分页功能,但当我点击第2页时,页面刷新并返回第一页,页面链接也保留在第1页上 任何帮助都将不胜感激:) 页面索引交换:- public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgse) { GridView x = ((GridView)sender); GridView1.DataSource = ViewState["dt_data"

我有一个gridview,它有分页功能,但当我点击第2页时,页面刷新并返回第一页,页面链接也保留在第1页上

任何帮助都将不胜感激:)

页面索引交换:-

public void GridView1_PageIndexChanging(object   
sender,GridViewPageEventArgse)
{
        GridView x = ((GridView)sender);
        GridView1.DataSource = ViewState["dt_data"];


        if (e.NewPageIndex > -1 && e.NewPageIndex <= x.PageCount)
        {
            x.PageIndex = e.NewPageIndex+1;
        }
        else
        {
            e.NewPageIndex--;
        }
   GridView1.DataBind();
}

修改页面索引交换代码

public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgse)
{
    GridView1.DataSource = (DataTable)ViewState["dt_data"];
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
}
  • 设置GridView的AllowPaging=“True”属性以启用分页

  • 设置PageSize属性以说明将在屏幕上显示多少条记录 每一页

  • HTML标记:

     <asp:GridView ID="GridView1" runat="server" AllowPaging="True"   PageSize="20" 
        onpageindexchanging="GridView1_PageIndexChanging"
        onrowcommand="GridView1_RowCommand" AutoGenerateColumns="False" 
        onrowdatabound="GridView1_RowDataBound"> 
    </asp:GridView>
    
    private void BuildResults()
    {
    DataTable dt01 = obSectionDefinition.List(_criteria.AuditDefinitionGUID, _criteria.ParentGUID, _criteria.ShowObsolete);
    
    // GridView1.PageSize = 20;
    // ViewState["dt_data"] = dt01;
     GridView1.DataSource = dt01;
     GridView1.DataBind();
    }
    
    
    public void GridView1_PageIndexChanging(object  sender,GridViewPageEventArgs e)
    {
         GridView1.PageIndex = e.NewPageIndex;
        BuildResults();
    }
    
    
    私有void BuildResults()
    {
    DataTable dt01=obSectionDefinition.List(_criteria.AuditDefinitionGUID、_criteria.ParentGUID、_criteria.showObsetable);
    //GridView1.PageSize=20;
    //ViewState[“dt_数据”]=dt01;
    GridView1.DataSource=dt01;
    GridView1.DataBind();
    }
    public void GridView1_PageIndexChanging(对象发送方,GridViewPageEventArgs e)
    {
    GridView1.PageIndex=e.NewPageIndex;
    BuildResults();
    }
    
    我收到了一个响应。在页面的其他位置写入,这导致分页失败-将其删除,现在可以工作了

    为什么要增加e.NewPageIndex?这也不起作用-有东西阻止分页工作
     protected void Page_Load(object sender, EventArgs e)
     {
            if (!this.IsPostBack)
            {
                   BuildResults();
            }
      }
    
    public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgse)
    {
        GridView1.DataSource = (DataTable)ViewState["dt_data"];
        GridView1.PageIndex = e.NewPageIndex;
        GridView1.DataBind();
    }
    
     <asp:GridView ID="GridView1" runat="server" AllowPaging="True"   PageSize="20" 
        onpageindexchanging="GridView1_PageIndexChanging"
        onrowcommand="GridView1_RowCommand" AutoGenerateColumns="False" 
        onrowdatabound="GridView1_RowDataBound"> 
    </asp:GridView>
    
    private void BuildResults()
    {
    DataTable dt01 = obSectionDefinition.List(_criteria.AuditDefinitionGUID, _criteria.ParentGUID, _criteria.ShowObsolete);
    
    // GridView1.PageSize = 20;
    // ViewState["dt_data"] = dt01;
     GridView1.DataSource = dt01;
     GridView1.DataBind();
    }
    
    
    public void GridView1_PageIndexChanging(object  sender,GridViewPageEventArgs e)
    {
         GridView1.PageIndex = e.NewPageIndex;
        BuildResults();
    }