如何检查ChildControlsCreated是否已更改?

时间:2013-06-06 16:15:32

标签: c# asp.net .net user-controls

如果ChildsControlsCreated更改为true,我正在尝试检查控件以进行更改。我怎么做?我试过......

if (tempControl.ChildControlsCreated == false)
{
    //do something
}
没有运气。还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

如果您正在实现自己的控件,或者您正在重用框架中的控件,则可以考虑覆盖方法CreateChildControls

在您编写自己的控件的情况下,您只需:

protected override void CreateChildControls() {

    // Add a LiteralControl to the current ControlCollection. 
    this.Controls.Add(new LiteralControl("<p>New Child Control!</p>"));


    ChildControlsCreated = true;
}

如果您正在重复使用其他人的控件,只要它可以覆盖,您可以执行以下操作:

public MyControl : SomeControl
{

    protected override void CreateChildControls() {

    base.CreateChildControls();


    ChildControlsCreated = true;
    } 

}

请注意,在这两种情况下,您现在可以控制何时设置ChildControlsCreated。因此,您可以将此概念扩展为向控件实现添加事件,在设置值时会触发该事件,让任何订阅者知道已创建子控件。