2016-01-05 34 views
0

我有一個數據集,我保存到viewstate中,我想分頁數據集。從數據集在gridview中分頁

代碼綁定gridview的

DataSet _ds = _fOrderInvoice.ExecuteDataSet(); 
ViewState["FIOrders"] = _ds.Tables[0]; 
grdInvoiced.DataSource = _ds; // bind the gridview 

現在我想在gridview的分頁。那麼我怎麼能從我保存到我的ViewState["FIOrders"]的數據集中做到這一點。我的GridView低於

 <asp:GridView ID="grdInvoiced" runat="server" Width="100%" ViewStateMode="Enabled" DefaultSortColumnName="OrderNo"          OnSelectedIndexChanged="GridInvoice_SelectedIndexChanged" AutoGenerateColumns="False" OnSorting="invoice_sorting" OnRowDataBound="grdInvoice_Rowdatabount" ShowFooter="true" PageSize="20" AllowPaging="True" AllowSorting="True" DataKeyNames="OrderNo" ExcelExportFileName="Export_AccountTerms.xls" 
ShowHeaderWhenEmpty="true" OnPageIndexChanging="grdInvoiced_PageIndexChanging"> 
<Columns> 
    <asp:CommandField ShowSelectButton="True" SelectText="View" /> 
     <asp:TemplateField> 
      <ItemTemplate> 
     <asp:CheckBox ID="rbtnSelect" GroupName="a" runat="server" /> 
     <asp:Literal ID="ltOrder" runat="server" Text='<%# Eval("OrderNo")%>' Visible="false"></asp:Literal> 
     </ItemTemplate> 
     <HeaderStyle HorizontalAlign="Left" Width="50px" /> 
    </asp:TemplateField>  
    </Columns>  
    </asp:GridView> 

PageIndexChanging事件

protected void grdInvoiced_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     grdInvoiced.PageIndex = e.NewPageIndex+1; 
     if (ViewState["FOrders"] != null) 
     { 
      DataTable ds = (DataTable)ViewState["FIOrders"]; 
      grdInvoiced.PageIndex = e.NewPageIndex + 1; 
      // Collection<FinalizedOrderInvoiceRows> _rows = ViewState["FIOrders"] as Collection<FinalizedOrderInvoiceRows>; 
      grdInvoiced.DataSource = ds; 
      grdInvoiced.DataBind(); 
     } 

    } 

回答

0

轉換您ViewStateDataSetBindGridView

protected void grdInvoiced_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     grdInvoiced.PageIndex = e.NewPageIndex; 
     if (ViewState["FOrders"] != null) 
     { 
      DataSet ds =(DataSet) ViewState["FIOrders"] ; 
      grdInvoiced.DataSource = ds; 
      grdInvoiced.DataBind(); 
     } 

    } 
+0

這是綁定與相同的數據再次 –

+0

@ A.Goutam是的,但它會顯示記錄在下一頁 –

+0

當我點擊頁面2 gridview再次綁定相同的數據 –