谁在页面中呼叫第一个 OnLoad 调用
本文关键字:第一个 OnLoad 调用 呼叫 | 更新日期: 2023-09-27 18:03:06
asp.net 3.5我一直坐在反射器旁边找出 - 谁是第一个(!(调用 OnLoad 方法,该方法为所有订阅者激活事件我没有找到它。
我不是在谈论AutoEvenntWireup的情况(这里无关紧要(,因为这个阶段发生在以后......
我说的是:谁首先激活 Control.OnLoad 方法?我想在反射器中看到它,并可以找到激活!我只能找到方法签名
Page.ProcessRequestMain()
调用Page.LoadRecursive()
,而又调用Page.OnLoad()
。
相关代码(用ILSpy反汇编(是:
internal virtual void LoadRecursive()
{
if (this._controlState < ControlState.Loaded) {
if (this._adapter != null) {
this._adapter.OnLoad(EventArgs.Empty);
} else {
this.OnLoad(EventArgs.Empty); // ** Here. **
}
}
if (this._occasionalFields != null
&& this._occasionalFields.Controls != null) {
string collectionReadOnly
= this._occasionalFields.Controls.SetCollectionReadOnly(
"Parent_collections_readonly");
int count = this._occasionalFields.Controls.Count;
for (int i = 0; i < count; i++) {
this._occasionalFields.Controls[i].LoadRecursive();
}
this._occasionalFields.Controls.SetCollectionReadOnly(
collectionReadOnly);
}
if (this._controlState < ControlState.Loaded) {
this._controlState = ControlState.Loaded;
}
}