【发布时间】:2016-01-05 07:56:53
【问题描述】:
我有一个保存到视图状态的数据集,我想在该数据集上进行分页。
绑定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();
}
}
【问题讨论】:
标签: c# asp.net gridview pagination