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

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,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 当前值。 如果此值为 falseCreateChildControls 则调用 方法。

EnsureChildControls方法通常用于复合控件,这些控件是对其部分或全部功能使用子控件的控件。 EnsureChildControls调用 方法是为了确保子控件已创建并准备好处理输入、执行数据绑定或执行其他任务。

控件 GridView 是复合控件的一个示例。 它创建子控件,如 TableTableRowTableCellLabelTextBox 控件,这些控件用于呈现 生成的 HTML 表 GridView

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

适用于

另请参阅