私はこれに対する答えを見つけようとして周りを検索しましたが、今のところ解決策を見つけていません。EntityDataSource
GridView(C#)でを使用しようとしています。Page_Load
ユーザーにドロップダウンリストからいくつかの情報を選択してもらいたいので、GridViewは最初は表示されません。ユーザーがいくつかの選択を行ってボタンを押すと、EDSのconnectionstringプロパティを変更して、ユーザー固有にします。これはすべて正常に機能し、GridViewにデータが入力されます。
次に、正常に機能する2ページ目に移動してみます。問題は、3ページ目に移動しようとしたときです(これは任意です... 4から始めて6に移動しようとすると...問題ありません)。この時点で、デバッグを監視し、EntityDataSource
が空(TotalRowCount = 0)であることを確認しました。私は本当にこれをnon-EntityDataSource
方法を使ってやり直したくありませんが、他に選択肢がないので、やり直します。
私もPageIndexChanging
発砲していて、新しいインデックスを適切に設定しようとしているので、それが問題の原因ではないようです...どのようにの状態を失っているのかわかりません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がどのように空になるのか、またはその状態をどのように維持する必要があるのかわかりません。