1

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

0 回答 0