父子页面Page_Load方法调用的顺序。
asp.net框架中(1.1 vs2003)父子页面的Page_Load方法的调用顺序是先调用子页面的Page_Load再调用父页面的Page_Load。
1. 框架用这种顺序调用的原因是什么?
直觉上感觉应该像父子类的构造函数那样先调用父类的方法。
2. 框架用何种机制完成这种调用?
框架是采用某种方式以从子类到父类的顺序获得类继承层次上的所有类,
而后调其Page_Load方法吗?
注意:Page_Load好像既不是虚方法也不是某个接口的方法。
[解决办法]
顺序:初始化母模板控件树-初始化内容页控件树-初始化母模板页-初始化内容页-加载内容页-加载母板页-加载母板控件树-加载内容控件树
[解决办法]
查看Control.OnLoad方法
页面也是从control继承的
加载的顺序保证所有控件都能被Load
举个例子:先把货装好了才能把火车开走...
[解决办法]
标准答案:1.初始化母版页的所有服务器控件
2.初始化子页面的服务器控件
3.母页页面初始化
4.子页页面初始化
5.内容页面加载
6.母页页面加载
7.母页控件加载
8.子页页面加载