我用一个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