次の方法で共有


Control.FindControl メソッド

定義

指定したサーバー コントロールの現在の名前付けコンテナーを検索します。

オーバーロード

FindControl(String)

指定した id パラメーターを使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。

FindControl(String, Int32)

指定した id および検索に役立つ pathOffset パラメーターに指定された整数を使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。 この形式の FindControl メソッドはオーバーライドしないでください。

FindControl(String)

指定した id パラメーターを使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。

public:
 virtual System::Web::UI::Control ^ FindControl(System::String ^ id);
public virtual System.Web.UI.Control FindControl (string id);
abstract member FindControl : string -> System.Web.UI.Control
override this.FindControl : string -> System.Web.UI.Control
Public Overridable Function FindControl (id As String) As Control

パラメーター

id
String

検索されるコントロールの識別子。

戻り値

指定したコントロール。指定したコントロールがない場合は null

次の例では、イベント ハンドラーを Button1_Click 定義します。 呼び出されると、このハンドラーは メソッドをFindControl使用して、格納しているページで のTextBox2プロパティをID持つコントロールを検索します。 コントロールが見つかった場合、その親は プロパティを Parent 使用して決定され、親コントロールの ID がページに書き込まれます。 が見つからない場合 TextBox2 は、"Control Not Found" がページに書き込まれます。

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

private void Button1_Click(object sender, EventArgs MyEventArgs)
{
      // Find control on page.
      Control myControl1 = FindControl("TextBox2");
      if(myControl1!=null)
      {
         // Get control's parent.
         Control myControl2 = myControl1.Parent;
         Response.Write("Parent of the text box is : " + myControl2.ID);
      }
      else
      {
         Response.Write("Control not found");
      }
}

Private Sub Button1_Click(sender As Object, MyEventArgs As EventArgs)
' Find control on page.
Dim myControl1 As Control = FindControl("TextBox2")
If (Not myControl1 Is Nothing)
   ' Get control's parent.
   Dim myControl2 As Control = myControl1.Parent
   Response.Write("Parent of the text box is : " & myControl2.ID)
Else
   Response.Write("Control not found.....")
End If
End Sub

注釈

分離コード ページの関数からコントロールにアクセスする場合、別のコンテナー内にあるコントロールにアクセスする場合、またはターゲット コントロールが呼び出し元から直接アクセスできない場合に使用 FindControl します。 このメソッドは、コントロールが指定されたコンテナーに直接含まれている場合にのみ、コントロールを検索します。つまり、 メソッドは、コントロール内のコントロールの階層全体を検索しません。 直接コンテナーがわからない場合にコントロールを検索する方法については、「 How to: Access Server Controls by ID」を参照してください。

こちらもご覧ください

適用対象

FindControl(String, Int32)

指定した id および検索に役立つ pathOffset パラメーターに指定された整数を使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。 この形式の FindControl メソッドはオーバーライドしないでください。

protected:
 virtual System::Web::UI::Control ^ FindControl(System::String ^ id, int pathOffset);
protected virtual System.Web.UI.Control FindControl (string id, int pathOffset);
abstract member FindControl : string * int -> System.Web.UI.Control
override this.FindControl : string * int -> System.Web.UI.Control
Protected Overridable Function FindControl (id As String, pathOffset As Integer) As Control

パラメーター

id
String

検索されるコントロールの識別子。

pathOffset
Int32

名前付けコンテナーに到達するために必要なページ コントロール階層までのコントロールの数。

戻り値

指定したコントロール。指定したコントロールがない場合は null

適用対象