Control.CreateChildControls Control.CreateChildControls Control.CreateChildControls Control.CreateChildControls Method

定義

ASP.NET ページ フレームワークによって呼び出され、ポストバックまたはレンダリングの準備として、合成ベースの実装を使うサーバー コントロールに対し、それらのコントロールに含まれる子コントロールを作成するように通知します。Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.

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

次の例でのオーバーライドされたバージョン、CreateChildControlsメソッド。The following example demonstrates an overridden version of the CreateChildControls method. この実装で複合コントロールが表示されます、 TextBox HTML をレンダリングする 2 つのリテラル コントロールで囲まれているコントロール。In this implementation, the composite control displays a TextBox control enclosed in two literal controls that render HTML.

重要

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

// 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

注釈

複合またはテンプレート化されたサーバー コントロールを開発する場合は、このメソッドをオーバーライドする必要があります。When you develop a composite or templated server control, you must override this method. そのオーバーライドを制御、CreateChildControlsメソッドを実装する必要があります、INamingContainer名前付けの競合を回避するインターフェイス。Controls that override the CreateChildControls method should implement the INamingContainer interface to avoid naming conflicts.

詳細については、次を参照してください。 Web サーバー コントロールのテンプレートカスタム ASP.NET サーバー コントロールの開発します。For more information, see Web Server Controls Templates and Developing Custom ASP.NET Server Controls.

適用対象

こちらもご覧ください