我遇到了一个有趣的生命周期事件错误,想象一下像这样的代码层次结构:
Page 1
User Control 2
User Control 3
这些项目中的每一项都是此订单中的子项。我希望第1页首先激活它的oninit,然后是用户控制2,然后是用户控制3.但是这不会发生;实际上,在这种情况下,User Control 3首先触发init。我将每个继承自一个特殊的基类,并有一些需要按顺序运行的管道代码。知道为什么会这样吗?
感谢。
答案 0 :(得分:2)
您所看到的并非错误。这是因为that's the way it's supposed to happen:
个人的
Init
事件 控件发生在Init
之前 页面的事件。
答案 1 :(得分:1)
正如其他人所指出的,Init事件从下往上触发,而后来的事件(如Load)从上到下触发。
答案 2 :(得分:1)
引发事件的一般规则是初始化事件从最内层控件引发到最外层控件,所有其他事件从最外层控件引发到最里面的控件。