2012-11-28 61 views
5

私のリストビューのドロップダウンリストを使用して結果をフィルタリングしようとしています。ControlParameter 'y'でコントロール 'x'が見つかりませんでした

<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
     DataFile="~/App_Data/ASPNetDB.mdb" 
     SelectCommand="SELECT * FROM [tblNames] WHERE [email protected]"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="DropDownList1" Name="Surnames" 
       PropertyName="SelectedValue" /> 
     </SelectParameters> 
    </asp:AccessDataSource> 

ドロップダウンリスト:私は次のように...

をデータソースの選択クエリを変更したリストビュー

<asp:DropDownList ID="DropDownList1" runat="server" 
     DataSourceID="AccessDataSource2" DataTextField="Genre" 
     DataValueField="NameID" AppendDataBoundItems="true"> 
      <asp:ListItem Value="" Selected ="True" >All Surnames</asp:ListItem> 
</asp:DropDownList> 

    <asp:AccessDataSource ID="AccessDataSource2" runat="server" 
     DataFile="~/App_Data/ASPNetDB.mdb" SelectCommand="SELECT * FROM [tblSurnames]"> 
    </asp:AccessDataSource> 

正しいコントロール名が使用されています(正確に同じキャップを使用しています)、ロード時のページはを返します。ControlParameter 'Surnames'にコントロール 'DropDownList1'が見つかりませんでした。

ここで間違っていることについてのご意見はありますか?

EDIT:それはDropDownListコントロールが含まれているContentPlaceHolderのIDを前置する

[InvalidOperationException: Could not find control 'DropDownList1' in ControlParameter 'Surname'.] 
    System.Web.UI.WebControls.ControlParameter.Evaluate(HttpContext context, Control control) +2107838 
    System.Web.UI.WebControls.Parameter.UpdateValue(HttpContext context, Control control) +50 
    System.Web.UI.WebControls.ParameterCollection.UpdateValues(HttpContext context, Control control) +113 
    System.Web.UI.WebControls.SqlDataSource.LoadCompleteEventHandler(Object sender, EventArgs e) +46 
    System.EventHandler.Invoke(Object sender, EventArgs e) +0 
    System.Web.UI.Page.OnLoadComplete(EventArgs e) +9010786 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2350 
+0

'AccessDataSource'と' DropDownList'は異なる命名コンテナにありますか? –

+0

同じページ内の2つの異なるContentPlaceHoldersにあります。 – Imran

+2

それから、 'ControlID'は' DropDownList'を含む 'ContentPlaceHolder'の' ID'の接頭語にする必要があります:http://stackoverflow.com/a/5719348/124386 –

答えて

8

ControlIDニーズ場合に役立ちます。ここスタックトレースは次のとおりです。

<asp:ControlParameter 
    Name="Surnames" 
    ControlID="ContentPlaceholderID$DropDownList1" 
    PropertyName="SelectedValue" 
/> 

を参照: https://stackoverflow.com/a/5719348/124386

+0

コントロールが複数の要素にネストされている場合、それらをすべて指定する必要があることがわかりましたので、私は次のようになりました:YourContentPlaceHolder $ YourASPxCallbackPanel $ YourASPxPopupControl $ YourASPxComboBox – Trajanus

0

また、関心のコントロールがruであることを確認してくださいnat = "server"アー。

関連する問題