2011-08-01 7 views
0

エラー:ControlParameter 'mycontrolparam'に 'mytextfield'コントロールが見つかりませんでした。制御パラメータが見つかりません

<asp:ControlParameter ControlID="mytextfield" Name="mycontrolparam" PropertyName="Text" Type="Int32" /> 

"mytextfield"がパネルコントロール内にあるため、そのエラーを見つけるにはFindControlメソッドが必要です。しかし、私は、もしあれば、mytextfieldを制御パラメータに見えるようにする方法があれば、簡単な解決方法を探したい。同じコードは別のページでは動作しますが、このページでは動作しません。既存のコードに最小限の変更を加えることを念頭に置いてください。

私はMicrosoftのサイトからコピーした同様のコードです。

<asp:SqlDataSource id="Employees" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Northwind%>" 
    SelectCommand="SELECT LastName FROM Employees WHERE Title = @Title"> 
    <SelectParameters> 
    <asp:ControlParameter Name="Title" 
     ControlID="DropDownList1" 
     PropertyName="SelectedValue"/> 
    </SelectParameters> 
</asp:sqldatasource> 

「mytextfield」は読み取り専用のテキストフィールドです。それは他のページでOKでも動作します。

+0

あり$記号のソリューションがあるが、それは、マスターページでは動作しません、次の方法を使用します。 –

答えて

0

Myself:コントロールがパネル内に埋め込まれている場合は、そのパネルのFindControlメソッドでしかコントロールを見つけることができません。それはまだ実際に私のために働かなかったし、私はそれを放棄し、別の方法を使用しなければならなかった。

はそう

FindControl("MyControlID") 
0

sqldatasourceが選択されている場合、コードビハインドページ内に制御パラメータを追加してください。最初にコントロールをキャストし、次にパラメータ値を追加する必要があります。私はmypanelという名前のパネルの中にテキストボックスのxyzコントロールを置いていました。

Protected Sub Employees_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles Employees.Selecting 
      Dim xyz As TextBox = DirectCast(mypanel.findcontrol("yourcontrolname"), TextBox) 
      Dim mycontrolparam = New SqlParameter("@mycontrolparam",xyz.text) 
      e.Command.Parameters.Add(mycontrolparam) 
     End Sub 
+0

答えをありがとう。今すぐhttp://forums.asp.net/t/940975.aspx/1?Could+not+find+control+xxx+in+ControlParameter+yyy+を調査してください。これをC#コードに変換できますが、今すぐ.aspxファイルで解決策を探しています。 –

関連する問題