我有一个Gridview,其数据源是一个EntityDataSource。 AllowPaging设置为true(请参阅代码)。在页面上还有一个DropDownList。当页面最初加载时,网格将填充相关数据源[未过滤]中的所有数据。当/如果用户从DropDownList中选择一个项目时,Gridview中的数据会相应地被过滤。
问题是,当我从新过滤的列表中选择一个页面时,过滤器被取消了一些方法,因此我得到了所有数据的下一页,而不是获取过滤列表的下一页。我该如何纠正?
------开场网格宣言-----
<asp:GridView ID="gvAthleteInfo" runat="server" DataKeyNames="AthleteUid" DataSourceID="dsAthleteInfo"
HeaderStyle-CssClass="dl-grid-heading" AutoGenerateColumns="false" OnRowCommand="gvAthleteInfo_RowCommand"
AllowPaging="true" AllowSorting="true">
.
.
.
</asp:GridView>
---------数据源绑定到网格----------
<asp:EntityDataSource ID="dsAthleteInfo" runat="server" ConnectionString="name=MBSCEntities"
DefaultContainerName="MBSCEntities"
EnableFlattening="False" EntitySetName="utathleteinfoes" AutoPage="true">
</asp:EntityDataSource>
-----------关于更改DropDownList选择的网格数据的“过滤”-----------------
protected void ddlTeams_IndexChanged(object sender, EventArgs e)
{
if (ddlTeams.SelectedIndex > 0)
dsAthleteInfo.Where = "it.SportUid = " + ddlTeams.SelectedIndex.ToString();
else
dsAthleteInfo.Where = "it.SportUid >= 0";
dsAthleteInfo.DataBind();
}