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 该方法来确保当前服务器控件具有子控件。 然后,它获取或设置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 是复合控件的一个示例。 它创建子控件,如 Table、 TableRow、 TableCell、 Label和 TextBox 控件,用于呈现生成的 HTML 表 GridView 。
在大多数情况下,自定义服务器控件开发人员不必重写此方法。 如果确实重写此方法,请使用此方法的方式类似于默认行为。