我用一個LinqDataSource標準的GridView。用戶可以使用庫存標準的東西對網格進行排序和翻頁。搜索條件(WhereParameters)也可用於過濾結果。這樣做效果很好,但是每當離開頁面時,狀態顯然都會丟失。ASP.NET GridView與LinqDataSource:記住排序,分頁和WhereParameters狀態
因此,捕獲Sort和Pagining狀態以及WhereParameter值的通用機制將非常棒。然後,用戶可以將這些值添加到會話中,並在用戶導航回頁面時恢復它們。
任何幫助將不勝感激。
我的代碼如下:
<asp:GridView ID="dataGridView" runat="server"
AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False"
CssClass="GridView"
DataSourceID="linqDataSource"
PageSize="20">
<Columns>
<asp:BoundField
HeaderText="Name"
DataField="Name"
SortExpression="Name" />
<asp:TemplateField
HeaderText="Province"
SortExpression="Province.Name">
<ItemTemplate>
<%# Eval("Province.Name")%></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="linqDataSource" runat="server"
ContextTypeName="DataContext"
TableName="Schools"
EnableUpdate="True"
EnableDelete="True"
Where="Name.Contains(@Name) && (ProvinceID == @ProvinceID)">
<WhereParameters>
<asp:ControlParameter
Name="Name"
DefaultValue=""
ControlID="tbName"
Type="String"
ConvertEmptyStringToNull="False" />
<asp:ControlParameter
Name="ProvinceID"
DefaultValue=""
ControlID="ddlProvince"
Type="Int32" />
</WhereParameters>
</asp:LinqDataSource>
是你的gridview在updatepanel中嗎? – 2009-10-07 04:11:34
是的。我已經排除了部分代碼。代碼起作用。只是當用戶返回頁面時,我想恢復「頁面視圖」。 – 2009-10-07 09:27:29