为什么分页重置网格数据源(EntityDataSource)?

时间:2012-12-11 16:21:11

标签: c# asp.net entity-framework entity-framework-4 entitydatasource

我有一个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();
}

0 个答案:

没有答案