代码之家  ›  专栏  ›  技术社区  ›  Mike Florian Doyen

EnsureChildControls()的正确用法是什么?

  •  10
  • Mike Florian Doyen  · 技术社区  · 14 年前

    在访问依赖于子控件的复合控件的属性时,我经常使用它。但是我也将它添加到了控件的OnInit中,这样就可以确保正确添加了隐藏字段。就在一分钟前,我在RenderControl中调用了它,因为我在渲染日历扩展器时遇到了一个问题,它解决了这个问题。我开始有点困惑什么时候需要,什么时候不需要调用EnsureChildControls,什么时候应该调用它。欢迎任何指点。谢谢!

    2 回复  |  直到 14 年前
        1
  •  6
  •   Dirk Brockhaus    14 年前

    EnsureChildControls会触发CreateChildControl(如果以前尚未触发)。在页面生命周期中只能执行一次。我在OnInit/Page\u Init中无条件地调用它,而不是在其他地方。这个地方的优点是控件是在创建之前创建的ASP.NET加载ViewState。如果使用ViewState或ControlState,那么必须尽早创建子控件。

        2
  •  0
  •   Andre Santos    14 年前

    EnsureChildControls方法确保在访问子控件之前创建它们。