0

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

if (tempControl.ChildControlsCreated == false)
{
    //do something
}

没有运气。还有其他想法吗?

4

1 回答 1

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。因此,您可以将此概念扩展为向您的控件实现添加一个事件,该事件将在您设置值时触发,让任何订阅者知道已创建子控件。

于 2013-06-06T16:33:10.713 回答