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 该方法来确保当前服务器控件具有子控件。 然后,它获取或设置Text当前服务器控件对象ControlCollection中子 TextBox Web 控件的属性。

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅脚本侵入概述

// 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 是复合控件的一个示例。 它创建子控件,如 TableTableRowTableCellLabelTextBox 控件,用于呈现生成的 HTML 表 GridView

在大多数情况下,自定义服务器控件开发人员不必重写此方法。 如果确实重写此方法,请使用此方法的方式类似于默认行为。

适用于

另请参阅