LinqDataSourceで標準のGridViewを使用しています。ユーザーは、標準的なものを使用して、グリッドを並べ替えてページングできます。検索基準(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>