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

Mik*_*ike 10 c# asp.net controls

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

Dir*_*aus 6

如果之前尚未触发,则EnsureChildControls会触发CreateChildControl.这必须在页面生命周期中只进行一次.我无条件地在OnInit/Page_Init中调用它,而不是其他地方.这个地方的优点是在ASP.NET加载ViewState之前创建了控件.如果使用ViewState或ControlState,则必须尽早创建子控件.