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 개체에서 자식 TextBox 웹 컨트롤의 속성을 가져오거나 설정합니다Text.

중요

이 예제에는 사용자 입력을 허용하는 텍스트 상자가 있으므로 보안상 위험할 수 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.

// 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 . 이 값이 false면 메서드가 CreateChildControls 호출됩니다.

EnsureChildControls 메서드는 일반적으로 일부 또는 모든 기능에 자식 컨트롤을 사용하는 컨트롤인 복합 컨트롤에서 사용됩니다. 자 EnsureChildControls 식 컨트롤이 생성되어 입력을 처리하거나, 데이터 바인딩을 수행하거나, 다른 작업을 수행할 준비가 되었는지 확인하기 위해 메서드가 호출됩니다.

컨트롤은 GridView 복합 컨트롤의 예입니다. 생성되는 HTML 테이블을 렌더링하는 데 사용되는 자식 컨트롤(예: Table,TableRow, LabelTableCellTextBox 컨트롤)을 GridView 만듭니다.

대부분의 경우 사용자 지정 서버 컨트롤 개발자는 이 메서드를 재정의할 필요가 없습니다. 이 메서드를 재정의하는 경우 기본 동작과 유사한 방식으로 사용합니다.

적용 대상

추가 정보