Web部件的生命周期是described,如下所示:
如您所见,OnLoad和CreateChildControls更改了它们的顺序。这在我的代码中引入了一些困难,因为我需要收集以前在OnLoad元素中所做的各种数据。
是否有任何理由在回发阶段更改订单?
最佳答案
每当框架(或您自己)调用SecureChildControls方法时,都会调用CreateChildControls。每当需要子控件存在时,都应调用此方法。
对于框架,它希望在OnInit和OnLoad之间设置发布的值(以便您可以在OnLoad期间访问这些值)。因为它需要控件才能执行此操作,所以它将为您调用确保 child 控件。
如果没有回发,则也不需要设置值,因此对确保 child 控件的调用将一直等到框架确实需要控件时。这恰好在OnLoad和OnPreRender之间。
关于asp.net - 为什么在回发时OnLoad/CreateChildControls顺序会更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1648447/