Control.EnsureChildControls メソッド

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

Protected Overridable Sub EnsureChildControls()
[C#]
protected virtual void EnsureChildControls();
[C++]
protected: virtual void EnsureChildControls();
[JScript]
protected function EnsureChildControls();

解説

このメソッドは最初に ChildControlsCreated プロパティの現在の値をチェックします。この値が false の場合、 CreateChildControls メソッドが呼び出されます。

ASP.NET は、子コントロールが作成済みであることを確認する必要があるときにはこのメソッドを呼び出します。ほとんどの場合、カスタム サーバー コントロールの開発者はこのメソッドをオーバーライドする必要はありません。このメソッドをオーバーライドするときには、既定の動作に類似する方法で使用します。

使用例

EnsureChildControls メソッドを使用して、現在のサーバー コントロールが子コントロールを持つように設定する例を次に示します。その後、現在のサーバー コントロールの ControlCollection オブジェクトにある子の TextBox Web コントロールの Text プロパティを取得または設定します。

 
' 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



[C#] 
// 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();
    }
 }


[C++] 
// Ensure the current control has children,
// then get or set the Text property.
public:
__property int get_Value() 
{
   this->EnsureChildControls();
   return Int32::Parse(dynamic_cast<TextBox*>(Controls->Item[1])->Text);
}
__property void set_Value(int value)
{
   this->EnsureChildControls();
   dynamic_cast<TextBox*>(Controls->Item[1])->Text = value.ToString();
}

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

 public function set Value(value : int)
 {
        this.EnsureChildControls();
        TextBox(Controls[1]).Text = value.ToString();
 }

必要条件

プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ

参照

Control クラス | Control メンバ | System.Web.UI 名前空間 | Controls | ChildControlsCreated | CreateChildControls