2009-06-02 59 views
2

ASP.Net Page Lifecycle article on MSDN为什么在ASP.Net页面循环中,子控件中的某些事件以相反的顺序触发?

虽然这两个初始化和负载上的每个控制递归发生,它们发生在相反的顺序。每个子控件的Init事件(以及Unload事件)都会在为其容器引发相应事件(自下而上)之前发生。但是,容器的Load事件发生在其子控件的加载事件(自上而下)之前。

这对于unload事件有很大的意义,但为什么对于init?其他事件呢?

亲切的问候,

回答

5

这是因为如何创建这些页面 - 用户控件的页面的类的属性。它们在类被初始化时被创建(并因此被初始化),这确保了它们的实例在构造函数和页面的init事件期间可用。

然后,当加载,预渲染和渲染事件发生时,页面的事件首先触发事件,并将其中的所有事件级联。

当卸载和处理来到属性对象时,再次处理。

WebForm页面事件模型有点太复杂了,恕我直言。

相关问题