私はEntityDataSourceを持つ単純なGridViewを持っています。私は後ろのコードにWhere Parametersを追加しようとしていますが、これは動作しますが、私はそれらをクリアできません。WhereParametersをEntityDataSourceでどのように削除しますか?
ASPX:
Id: <asp:TextBox runat="server" Text="" ID="IDValue"></asp:TextBox>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
DataSourceID="EntityDataSource1" AllowSorting="True" AllowPaging="True">
<Columns>
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<asp:HyperLink runat="server" ID="link" NavigateUrl='<%#Bind("CompanyId") %>'>Edit</asp:HyperLink>
</ItemTemplate>
<HeaderTemplate>Action</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CompanyId" HeaderText="CompanyId" ReadOnly="True"
SortExpression="CompanyId" />
<asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True"
SortExpression="Name" />
<asp:BoundField DataField="BillingAddress" HeaderText="BillingAddress"
ReadOnly="True" SortExpression="BillingAddress" />
<asp:BoundField DataField="BillingCity" HeaderText="BillingCity"
ReadOnly="True" SortExpression="BillingCity" />
</Columns>
</asp:GridView>
<br />
<asp:EntityDataSource ID="EntityDataSource1" runat="server"
ConnectionString="name=OrderITEntities" DefaultContainerName="OrderITEntities"
EnableFlattening="False" EntitySetName="Companies" EntityTypeFilter="Company"
Select="it.[CompanyId], it.[Name], it.[BillingAddress], it.[BillingCity]"
AutoGenerateOrderByClause="true"
AutoGenerateWhereClause="true"
>
<OrderByParameters>
<asp:Parameter DefaultValue="CompanyId" />
</OrderByParameters>
</asp:EntityDataSource>
<asp:Button runat="server" Text="Submit" />
と背後にあるコードで:
protected override void OnInit(EventArgs e)
{
EntityDataSource1.WhereParameters.Clear();
base.OnInit(e);
}
protected void Page_Load(object sender, EventArgs e)
{
EntityDataSource1.WhereParameters.Clear();
if (IDValue.Text.Length > 0)
{
ControlParameter cp = new ControlParameter();
cp.ControlID = "IDValue";
cp.DbType = System.Data.DbType.Int32;
cp.Name = "CompanyId";
cp.PropertyName = "Text";
EntityDataSource1.WhereParameters.Add(cp);
}
}
注
EntityDataSource1.WhereParameters.Clear();
は、デバッガが言うにもかかわらず、どこのパラメータをクリアしていないようだということカウントは0です。