Control.CreateChildControls 메서드

정의

다시 게시 또는 렌더링하기 위한 준비 작업으로, 포함된 자식 컨트롤을 만들도록 컴퍼지션 기반 구현을 사용하는 서버 컨트롤에 알리기 위해 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:
 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 메서드의 재정의 된 버전을 보여 줍니다.The following example demonstrates an overridden version of the CreateChildControls method. 이 구현에서 복합 컨트롤은 HTML을 렌더링 하는 두 개의 리터럴 컨트롤에 포함 된 TextBox 컨트롤을 표시 합니다.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 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 자세한 내용은 Script Exploits Overview를 참조하세요.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

설명

복합 또는 템플릿 기반 서버 컨트롤을 개발할 때이 메서드를 재정의 해야 합니다.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.

자세한 내용은 웹 서버 컨트롤 템플릿사용자 지정 ASP.NET 서버 컨트롤 개발을 참조 하세요.For more information, see Web Server Controls Templates and Developing Custom ASP.NET Server Controls.

적용 대상

추가 정보