Control.FindControl メソッド

定義

指定したサーバー コントロールの現在の名前付けコンテナーを検索します。Searches the current naming container for the specified server control.

オーバーロード

FindControl(String)

指定した id パラメーターを使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。Searches the current naming container for a server control with the specified id parameter.

FindControl(String, Int32)

指定した id および検索に役立つ pathOffset パラメーターに指定された整数を使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。Searches the current naming container for a server control with the specified id and an integer, specified in the pathOffset parameter, which aids in the search. この形式の FindControl メソッドはオーバーライドしないでください。You should not override this version of the FindControl method.

FindControl(String)

指定した id パラメーターを使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。Searches the current naming container for a server control with the specified id parameter.

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

検索されるコントロールの識別子。The identifier for the control to be found.

戻り値

指定したコントロール。指定したコントロールがない場合は nullThe specified control, or null if the specified control does not exist.

次の例では、Button1_Click イベントハンドラーを定義します。The following example defines a Button1_Click event handler. このハンドラーが呼び出されると、FindControl メソッドを使用して、含まれているページに TextBox2ID プロパティを持つコントロールを検索します。When invoked, this handler uses the FindControl method to locate a control with an ID property of TextBox2 on the containing page. コントロールが見つかった場合、その親は Parent プロパティを使用して決定され、親コントロールの ID がページに書き込まれます。If the control is found, its parent is determined using the Parent property and the parent control's ID is written to the page. TextBox2 が見つからない場合は、"コントロールが見つかりません" というページに書き込まれます。If TextBox2 is not found, "Control Not Found" is written to the page.

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。This example has a text box that accepts user input, which is a potential security threat. 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 詳細については、「スクリプトによる攻略の概要」を参照してください。For more information, see Script Exploits Overview.

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 を使用します。Use FindControl to access a control from a function in a code-behind page, to access a control that is inside another container, or in other circumstances where the target control is not directly accessible to the caller. このメソッドは、コントロールが指定されたコンテナーに直接含まれている場合にのみ、コントロールを検索します。つまり、メソッドは、コントロール内のコントロールの階層全体を検索しません。This method will find a control only if the control is directly contained by the specified container; that is, the method does not search throughout a hierarchy of controls within controls. 直接コンテナーがわからない場合にコントロールを検索する方法については、「方法:IDによってサーバーコントロールにアクセスします。For information about how to find a control when you do not know its immediate container, see How to: Access Server Controls by ID.

こちらもご覧ください

FindControl(String, Int32)

指定した id および検索に役立つ pathOffset パラメーターに指定された整数を使用して、サーバー コントロールの現在の名前付けコンテナーを検索します。Searches the current naming container for a server control with the specified id and an integer, specified in the pathOffset parameter, which aids in the search. この形式の FindControl メソッドはオーバーライドしないでください。You should not override this version of the FindControl method.

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

検索されるコントロールの識別子。The identifier for the control to be found.

pathOffset
Int32

名前付けコンテナーに到達するために必要なページ コントロール階層までのコントロールの数。The number of controls up the page control hierarchy needed to reach a naming container.

戻り値

指定したコントロール。指定したコントロールがない場合は nullThe specified control, or null if the specified control does not exist.

適用対象