Control.EnsureChildControls 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
서버 컨트롤에 자식 컨트롤이 있는지 확인합니다. 서버 컨트롤에 자식 컨트롤이 없으면 자식 컨트롤을 만듭니다.
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, LabelTableCell및 TextBox 컨트롤)을 GridView 만듭니다.
대부분의 경우 사용자 지정 서버 컨트롤 개발자는 이 메서드를 재정의할 필요가 없습니다. 이 메서드를 재정의하는 경우 기본 동작과 유사한 방식으로 사용합니다.