我遇到了一个有趣的生命周期事件错误,想象一下这样的代码层次结构:
Page 1
User Control 2
User Control 3
这些项目中的每一个都是此顺序的子项。我希望第 1 页首先触发其 oninit,然后是用户控件 2,然后是用户控件 3。但这不会发生;实际上,在这种情况下,用户控件 3 首先触发 init。我有每一个都继承自一个特殊的基类,并且有一些需要按顺序运行的管道代码。知道为什么会这样吗?
谢谢。
我遇到了一个有趣的生命周期事件错误,想象一下这样的代码层次结构:
Page 1
User Control 2
User Control 3
这些项目中的每一个都是此顺序的子项。我希望第 1 页首先触发其 oninit,然后是用户控件 2,然后是用户控件 3。但这不会发生;实际上,在这种情况下,用户控件 3 首先触发 init。我有每一个都继承自一个特殊的基类,并且有一些需要按顺序运行的管道代码。知道为什么会这样吗?
谢谢。
你看到的不是错误。它正在发生,因为这就是它应该发生的方式:
Init
单个控件的事件发生在Init
页面事件之前。
正如其他人所指出的,Init 事件是自下而上触发的,而后来的事件(例如 Load)是自上而下触发的。
引发事件的一般规则是初始化事件从最内层控件引发到最外层,所有其他事件从最外层控件引发到最内层。