簡體   English   中英

使用Datatable進行Gridview分頁-不起作用

[英]Gridview paging using Datatable - not working

我有一個具有分頁功能的gridview,但是當我單擊第2頁時,頁面刷新並返回第一頁,並且頁面鏈接也保留在第1頁上。

任何幫助將不勝感激:)

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
onpageindexchanging="GridView1_PageIndexChanging"
onrowcommand="GridView1_RowCommand" AutoGenerateColumns="False" 
onrowdatabound="GridView1_RowDataBound">
<Columns> 
<asp:BoundField DataField="Sequence" HeaderText="Sequence" HeaderStyle-  
Width="10%"/>
<asp:TemplateField HeaderStyle-Width="90%">
<ItemTemplate>
<asp:Label ID="lblTitle" runat="server" Text='<%# Eval("Title") %>' Font- 
Strikeout='<%# ((Convert.ToBoolean(Eval("Obsolete")))?true:false) %>' />
</ItemTemplate>
</asp:TemplateField>

代碼背后:

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();
}

PageIndexChanging:-

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();
}

頁面加載:-

 protected void Page_Load(object sender, EventArgs e)
 {
        if (!this.IsPostBack)
        {
               BuildResults();
        }
  }

修改PageIndexChanging代碼

public void GridView1_PageIndexChanging(object sender,GridViewPageEventArgse)
{
    GridView1.DataSource = (DataTable)ViewState["dt_data"];
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
}
  1. 設置GridView的AllowPaging =“ True”屬性以啟用分頁

  2. 設置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();
}

我在其他頁面上有一個Response.Write,這導致頁面調度失敗-刪除它,現在可以使用了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM