web部件的生命周期是所述,如下所示:
页面加载
在第一次回发(PostBack单击处理程序通过公共属性设置ViewState )
在第二次回发(PostBack单击处理程序通过公共属性设置ViewState )
如您所见,OnLoad和CreateChildControls更改了它们的顺序。这在我的代码中引入了一些困难,因为我需要收集各种数据,这是我过去在OnLoad元素中所做的。
在后退阶段,有什么理由改变订单吗?
发布于 2009-12-08 22:56:33
每当框架(或您自己)调用EnsureChildControls方法时,都会调用EnsureChildControls。当您需要子控件时,应该调用此方法。
在框架中,它希望在OnInit和OnLoad之间设置已发布的值(以便您可以在OnLoad期间访问这些值)。因为它需要控件来完成这个任务,所以它将为您调用EnsureChildControls。
如果没有回发,也不需要设置值,因此对EnsureChildControls的调用将等待到框架需要控件的时候。这恰好在OnLoad和OnPreRender之间。
https://stackoverflow.com/questions/1648447
复制相似问题