有趣的ASP.NET生命周期事件触发错误

时间:2011-03-13 02:46:46

标签: c# asp.net page-lifecycle init

我遇到了一个有趣的生命周期事件错误,想象一下像这样的代码层次结构:

Page 1
   User Control 2
      User Control 3

这些项目中的每一项都是此订单中的子项。我希望第1页首先激活它的oninit,然后是用户控制2,然后是用户控制3.但是这不会发生;实际上,在这种情况下,User Control 3首先触发init。我将每个继承自一个特殊的基类,并有一些需要按顺序运行的管道代码。知道为什么会这样吗?

感谢。

3 个答案:

答案 0 :(得分:2)

您所看到的并非错误。这是因为that's the way it's supposed to happen

  

个人的Init事件   控件发生在Init之前   页面的事件。

答案 1 :(得分:1)

正如其他人所指出的,Init事件从下往上触发,而后来的事件(如Load)从上到下触发。

答案 2 :(得分:1)

引发事件的一般规则是初始化事件从最内层控件引发到最外层控件,所有其他事件从最外层控件引发到最里面的控件。