Control.EnsureChildControls メソッド

定義

サーバー コントロールに子コントロールが含まれているかどうかを確認します。 含まれていない場合、子コントロールを作成します。

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

次の例では、メソッドを EnsureChildControls 使用して、現在のサーバー コントロールに子コントロールがあることを確認します。 次に、現在のサーバー ControlCollection コントロールのTextオブジェクト内の子 TextBox Web コントロールのプロパティを取得または設定します。

重要

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

// 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 チェックします。 この値が指定されている場合は falseCreateChildControls メソッドが呼び出されます。

通常、この EnsureChildControls メソッドは複合コントロールで使用されます。これは、一部またはすべての機能に子コントロールを使用するコントロールです。 この EnsureChildControls メソッドは、子コントロールが作成され、入力の処理、データ バインディングの実行、またはその他のタスクの実行の準備ができていることを確認するために呼び出されます。

コントロールは GridView 複合コントロールの例です。 生成する HTML テーブルをTableTableRowLabelTableCellTextBoxレンダリングするために使用される 、などの子コントロールをGridView作成します。

ほとんどの場合、カスタム サーバー コントロールの開発者は、このメソッドをオーバーライドする必要はありません。 このメソッドをオーバーライドする場合は、既定の動作と同様の方法で使用します。

適用対象

こちらもご覧ください