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 子 TextBox 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 当前值。 如果此值为 false
, CreateChildControls 则调用 方法。
EnsureChildControls方法通常用于复合控件,这些控件是对其部分或全部功能使用子控件的控件。 EnsureChildControls调用 方法是为了确保子控件已创建并准备好处理输入、执行数据绑定或执行其他任务。
控件 GridView 是复合控件的一个示例。 它创建子控件,如 Table、 TableRow、 TableCell、 Label和 TextBox 控件,这些控件用于呈现 生成的 HTML 表 GridView 。
在大多数情况下,自定义服务器控件开发人员不必重写此方法。 如果确实重写此方法,请以类似于默认行为的方式使用它。