C# 使用GridView分页时EntityDataSource为空

C# 使用GridView分页时EntityDataSource为空,c#,asp.net,entity-framework,gridview,entitydatasource,C#,Asp.net,Entity Framework,Gridview,Entitydatasource,我四处寻找,试图找到一个答案,但到目前为止还没有找到解决办法。我正在尝试将EntityDataSource与GridView C一起使用。由于我希望用户从下拉列表中选择一些信息,GridView最初不会在Page_Load上填充。当用户做出一些选择并按下按钮时,我会修改EDS的connectionstring属性,使其特定于用户。这一切都很好,GridView中填充了数据 然后我试着转到第2页,这很好。问题是,当我试图转到第3页时,这是任意的…我可以从第4页开始,然后尝试转到第6页…没关系。此时

我四处寻找,试图找到一个答案,但到目前为止还没有找到解决办法。我正在尝试将EntityDataSource与GridView C一起使用。由于我希望用户从下拉列表中选择一些信息,GridView最初不会在Page_Load上填充。当用户做出一些选择并按下按钮时,我会修改EDS的connectionstring属性,使其特定于用户。这一切都很好,GridView中填充了数据

然后我试着转到第2页,这很好。问题是,当我试图转到第3页时,这是任意的…我可以从第4页开始,然后尝试转到第6页…没关系。此时,我已经在调试中看到EntityDataSource是空的TotalRowCount=0。我真的不想用非EntityDataSource方法重做这个,但是没有其他选择,我会的

我还启动了PageIndexChange,我正在尝试正确设置新索引,因此这似乎不是问题的原因……我不确定我是如何丢失EntityDataSource的状态的

以下是代码片段:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
        EntityDataSource ed2 = (EntityDataSource)this.lv2.FindControl("EntityDataSource2");
        GridView gv1 = (GridView)this.lv2.FindControl("GridView1");
        gv1.DataSourceID = null;
        gv1.DataSource = ed2;
        gv1.DataBind(); 
        gv1.PageIndex = e.NewPageIndex;  
    }

<asp:EntityDataSource ID="EntityDataSource2" runat="server" ConnectionString="name=MAS_CMLEntities1" DefaultContainerName="MAS_CMLEntities1" EnableFlattening="False" EntitySetName="CI_Item" AutoGenerateWhereClause="false"
Select="it.[ItemCode], it.[ItemCodeDesc], it.[LastSoldDate], it.[UDF_Manufact], it.[Category2], it.[SalesUMConvFctr], it.[DefaultWarehouseCode], it.[TotalQuantityOnHand], it.[SalesUMConvFctr]" 
Where="it.[ItemCode] LIKE @siteFilter" OrderBy="it.[ItemCode]" 
ViewStateMode="Inherit" onselected="EntityDataSource2_Selected">
<WhereParameters>
<asp:Parameter Name="siteFilter" Type="String" />
</WhereParameters>
</asp:EntityDataSource> 

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ItemCode" 
        DataSourceID="EntityDataSource2" CellPadding="20"
        GridLines="None" CssClass="mGrid" PagerStyle-CssClass="pgr" 
        AlternatingRowStyle-CssClass="alt" CellSpacing="20" AllowPaging="True" 
        AllowSorting="True" onpageindexchanging="GridView1_PageIndexChanging" 
        onpageindexchanged="GridView1_PageIndexChanged" PageSize="15"
        onrowcommand="GridView1_RowCommand">
    <AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
        <Columns>
            <asp:BoundField DataField="ItemCode" HeaderText="ItemCode" ReadOnly="True" 
                SortExpression="ItemCode" />
            <asp:BoundField DataField="ItemCodeDesc" HeaderText="Desc" ReadOnly="True" 
                SortExpression="ItemCodeDesc" />
            <asp:BoundField DataField="UDF_Manufact" HeaderText="MFG" ReadOnly="True" 
                SortExpression="UDF_Manufact" />
            <asp:BoundField DataField="Category2" HeaderText="Container" ReadOnly="True" 
                SortExpression="Category2" />
            <asp:BoundField DataField="SalesUMConvFctr" HeaderText="ContainerUOM" ReadOnly="True" 
                SortExpression="SalesUMConvFctr" />
            <asp:BoundField DataField="DefaultWarehouseCode" HeaderText="WhseCode" ReadOnly="True" 
                SortExpression="DefaultWarehouseCode" />
            <asp:BoundField DataField="TotalQuantityOnHand" HeaderText="QtyOnHand" ReadOnly="True" 
                SortExpression="TotalQuantityOnHand" />
            <asp:BoundField DataField="SalesUMConvFctr" HeaderText="Units" ReadOnly="True" 
                SortExpression="SalesUMConvFctr" />
            <asp:ButtonField ButtonType="Button" CommandName="AddToCart" 
                HeaderText="Add To Request" Text="Add" >
                <ItemStyle HorizontalAlign="Center" />
            </asp:ButtonField>
        </Columns>
    <PagerStyle CssClass="pgr"></PagerStyle>
</asp:GridView>  
我做错了什么?我不明白EDS是如何变为空的,或者我应该如何保持它的状态