Control.CreateChildControls メソッド

定義

ASP.NET ページ フレームワークによって呼び出され、コンポジション ベースの実装を使用して、ポスト バックまたはレンダリングの準備として含まれる子コントロールを作成するサーバー コントロールに通知します。

protected:
 virtual void CreateChildControls();
protected public:
 virtual void CreateChildControls();
protected virtual void CreateChildControls();
protected internal virtual void CreateChildControls();
abstract member CreateChildControls : unit -> unit
override this.CreateChildControls : unit -> unit
Protected Overridable Sub CreateChildControls ()
Protected Friend Overridable Sub CreateChildControls ()

次の例では、 CreateChildControls メソッドのオーバーライドされたバージョンを示します。 この実装では、複合コントロールは、HTML をレンダリングする 2 つのリテラル コントロールで囲まれた TextBox コントロールを表示します。

Important

この例には、潜在的なセキュリティ上の脅威であるユーザー入力を受け入れるテキスト ボックスがあります。 既定では、ASP.NET Web ページでは、ユーザー入力にスクリプトや HTML 要素が含まれていないことが検証されます。 詳細については、「スクリプトの 悪用の概要」を参照してください。

// Override CreateChildControls to create the control tree.
 [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="Execution")]
 protected override void CreateChildControls() {

     // Add a LiteralControl to the current ControlCollection.
     this.Controls.Add(new LiteralControl("<h3>Value: "));

     // Create a text box control, set the default Text property, 
     // and add it to the ControlCollection.
     TextBox box = new TextBox();
     box.Text = "0";
     this.Controls.Add(box);

     this.Controls.Add(new LiteralControl("</h3>"));
 }

' Override CreateChildControls to create the control tree.
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="Execution")> _
Protected Overrides Sub CreateChildControls()
   
   ' Add a LiteralControl to the current ControlCollection.
   Me.Controls.Add(New LiteralControl("<h3>Value: "))
   
   
   ' Create a text box control, set the default Text property, 
   ' and add it to the ControlCollection.
   Dim box As New TextBox()
   box.Text = "0"
   Me.Controls.Add(box)
   
   Me.Controls.Add(New LiteralControl("</h3>"))
End Sub

注釈

複合サーバー コントロールまたはテンプレート サーバー コントロールを開発する場合は、このメソッドをオーバーライドする必要があります。 CreateChildControls メソッドをオーバーライドするコントロールは、名前の競合を回避するためにINamingContainer インターフェイスを実装する必要があります。

詳細については、「Web Server Controls Templates および Developing Custom ASP.NET Server Controls を参照してください。

適用対象

こちらもご覧ください