Control.EnsureChildControls メソッド

定義

サーバー コントロールに子コントロールが含まれているかどうかを確認します。Determines whether the server control contains child controls. 含まれていない場合、子コントロールを作成します。If it does not, it creates child controls.

protected:
 virtual void EnsureChildControls();
protected virtual void EnsureChildControls ();
abstract member EnsureChildControls : unit -> unit
override this.EnsureChildControls : unit -> unit
Protected Overridable Sub EnsureChildControls ()

次の例では、EnsureChildControls メソッドを使用して、現在のサーバーコントロールに子コントロールがあることを確認します。The following example uses the EnsureChildControls method to ensure that the current server control has child controls. 次に、現在のサーバーコントロールの ControlCollection オブジェクトの子 TextBox Web コントロールの Text プロパティを取得または設定します。It then gets or sets a Text property for a child TextBox Web control in the current server control's ControlCollection object.

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。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.

// Ensure the current control has children,
// then get or set the Text property.
 public int Value {
    get {
        this.EnsureChildControls();
        return Int32.Parse(((TextBox)Controls[1]).Text);
    }
    set {
        this.EnsureChildControls();
        ((TextBox)Controls[1]).Text = value.ToString();
    }
 }

' Ensure the current control has children,
' then get or set the Text property.

Public Property Value() As Integer
   Get
      Me.EnsureChildControls()
      Return Int32.Parse(CType(Controls(1), TextBox).Text)
   End Get
   Set
      Me.EnsureChildControls()
      CType(Controls(1), TextBox).Text = value.ToString()
   End Set
End Property


注釈

このメソッドは、最初に ChildControlsCreated プロパティの現在の値をチェックします。This method first checks the current value of the ChildControlsCreated property. この値が false場合、CreateChildControls メソッドが呼び出されます。If this value is false, the CreateChildControls method is called.

EnsureChildControls メソッドは、通常、一部またはすべての機能に対して子コントロールを使用するコントロールである複合コントロールで使用されます。The EnsureChildControls method is typically used in composite controls, which are controls that use child controls for some or all their functionality. EnsureChildControls メソッドは、子コントロールが作成されており、入力の処理、データバインディングの実行、またはその他のタスクを実行する準備ができていることを確認するために呼び出されます。The EnsureChildControls method is called in order to make sure that child controls have been created and are ready to process input, to perform data binding, or to perform other tasks.

複合コントロールの例として、GridView コントロールがあります。The GridView control is an example of a composite control. TableTableRowTableCellLabelTextBox などのコントロールを作成します。これらのコントロールは、GridView によって生成される HTML テーブルのレンダリングに使用されます。It creates child controls such as Table, TableRow, TableCell, Label, and TextBox controls, which are used to render the HTML table that the GridView generates.

ほとんどの場合、カスタムサーバーコントロールの開発者は、このメソッドをオーバーライドする必要はありません。In most cases, custom server control developers do not have to override this method. このメソッドをオーバーライドする場合は、既定の動作と同様の方法で使用します。If you do override this method, use it in a way similar to the default behavior.

適用対象

こちらもご覧ください