来自ASP.Net Page Lifecycle article on MSDN:
虽然Init和Load都在每个控件上递归出现,但它们的顺序相反。每个子控件的Init事件(以及Unload事件)发生在为其容器引发相应的事件之前(自下而上)。但是,容器的Load事件发生在其子控件的Load事件之前(自上而下)。
这对unload
事件很有意义,但为什么init
呢?其他事件怎么样?
亲切的问候,
答案 0 :(得分:5)
这是由于这些页面的创建方式 - 用户控件是页面类的属性。它们在初始化时被创建(并因此初始化),这确保了它们的实例在构造函数和页面的init事件期间可用。
然后,当加载,预渲染和渲染事件发生时,页面的事件首先触发,并将事件级联到其中的所有内容。
当卸载和处置时,属性对象首先再次处理。
WebForm页面事件模型有点过于复杂,恕我直言。