ASP.NET2.0 母版页和内容页中的事件
母版页和内容页都可以包含控件的事件处理程序。对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在 母版页中引发事件。控件事件不会从内容页发送到母版页。同样,也不能在内容页中处理来自母版页控件的事件。
在某些情况下,内容页和母版页中会引发相同的事件。例如,两者都引发 Init 和 Load 等事件。
引发事件的一般规则是初始化事件从最里面的控件向最外面的控件引发,所有其他事件则从最外面的控件向最里面的控件引发。请记住,母版页会合并到内容 页中并被视为内容页中的一个控件,这一点十分有用。
母版页和内容页中的事件顺序对于页面开发人员并不重要。但是,如果您创建的事件处理程序取决于某些事件的可用性,那么您将发现,了解母版页和内容页 中的事件顺序很有帮助。
由于我自己经常需要取决于某些事件的可用性,下面是我测试中提取到的事件的发生顺序:
页面首次显示,事件发生顺序:
2006-10-23 11:23:58 9880 内容页 Page_PreInit (在页初始化开始时发生。)
2006-10-23 11:23:58 9981 母版页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 0081 内容页控件 Button_Init
2006-10-23 11:23:59 0481 内容页控件 Label_Init
2006-10-23 11:23:59 0582 内容页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 0782 母版页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 0882 内容页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:23:59 1082 内容页 Page_InitComplete (在页初始化完成时发生。)
2006-10-23 11:23:59 1182 内容页 Page_PreLoad (在页 Load 事件之前发生。)
2006-10-23 11:23:59 1483 内容页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1583 母版页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1783 母版页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1883 内容页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:23:59 1984 内容页控件 Button_Load
2006-10-23 11:23:59 2084 内容页控件 Label_Load
2006-10-23 11:23:59 2284 内容页 Page_LoadComplete (在页生命周期的加载阶段结束时发生。)
2006-10-23 11:23:59 2484 内容页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2685 母版页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2785 母版页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2885 内容页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:23:59 2985 内容页控件 Button_PreRender
2006-10-23 11:23:59 3085 内容页控件 Label_PreRender
2006-10-23 11:23:59 3285 内容页 Page_PreRenderComplete (在呈现页内容之前发生。)
2006-10-23 11:23:59 3386 内容页 Page_SaveStateComplete (在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。)
2006-10-23 11:23:59 3586 母版页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:23:59 3786 内容页控件 Button_Unload
2006-10-23 11:23:59 3886 内容页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:23:59 3986 母版页 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:23:59 4087 内容页 Page_Unload (当服务器控件从内存中卸载时发生。)
母版页控件Button_Click后,事件发生顺序:
2006-10-23 11:24:03 4044 内容页 Page_PreInit (在页初始化开始时发生。)
2006-10-23 11:24:03 4244 母版页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 4344 内容页控件 Button_Init
2006-10-23 11:24:03 4445 内容页控件 Label_Init
2006-10-23 11:24:03 4745 内容页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 4945 母版页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 5045 内容页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:03 5146 内容页 Page_InitComplete (在页初始化完成时发生。)
2006-10-23 11:24:03 5246 内容页 Page_PreLoad (在页 Load 事件之前发生。)
2006-10-23 11:24:03 5346 内容页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5546 母版页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5646 母版页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5847 内容页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:03 5947 内容页控件 Button_Load
2006-10-23 11:24:03 6147 内容页控件 Label_Load
2006-10-23 11:24:03 6247 母版页UC控件 Button_Click
2006-10-23 11:24:03 6347 内容页 Page_LoadComplete (在页生命周期的加载阶段结束时发生。)
2006-10-23 11:24:03 6447 内容页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6648 母版页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6748 母版页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6848 内容页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:03 6948 内容页控件 Button_PreRender
2006-10-23 11:24:03 7148 内容页控件 Label_PreRender
2006-10-23 11:24:03 7249 内容页 Page_PreRenderComplete (在呈现页内容之前发生。)
2006-10-23 11:24:03 7349 内容页 Page_SaveStateComplete (在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。)
2006-10-23 11:24:03 7549 母版页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:03 7649 内容页控件 Button_Unload
2006-10-23 11:24:03 7749 内容页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:03 7849 母版页 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:03 7950 内容页 Page_Unload (当服务器控件从内存中卸载时发生。)
内容页控件Button_Click后,事件发生顺序:
2006-10-23 11:24:05 5174 内容页 Page_PreInit (在页初始化开始时发生。)
2006-10-23 11:24:05 5275 母版页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 5475 内容页控件 Button_Init
2006-10-23 11:24:05 5575 内容页控件 Label_Init
2006-10-23 11:24:05 5675 内容页UC控件 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 5875 母版页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 5976 内容页 Page_Init (当服务器控件初始化时发生;初始化是控件生存期的第一步。)
2006-10-23 11:24:05 6076 内容页 Page_InitComplete (在页初始化完成时发生。)
2006-10-23 11:24:05 6276 内容页 Page_PreLoad (在页 Load 事件之前发生。)
2006-10-23 11:24:05 6376 内容页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6476 母版页 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6677 母版页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6777 内容页UC控件 Page_Load (当服务器控件加载到 Page 对象中时发生。)
2006-10-23 11:24:05 6877 内容页控件 Button_Load
2006-10-23 11:24:05 6977 内容页控件 Label_Load
2006-10-23 11:24:05 7177 内容页控件 Button_Click
2006-10-23 11:24:05 7277 内容页 Page_LoadComplete (在页生命周期的加载阶段结束时发生。)
2006-10-23 11:24:05 7378 内容页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7478 母版页 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7678 母版页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7778 内容页UC控件 Page_PreRender (在加载 Control 对象之后、呈现之前发生。)
2006-10-23 11:24:05 7878 内容页控件 Button_PreRender
2006-10-23 11:24:05 7978 内容页控件 Label_PreRender
2006-10-23 11:24:05 8179 内容页 Page_PreRenderComplete (在呈现页内容之前发生。)
2006-10-23 11:24:05 8279 内容页 Page_SaveStateComplete (在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。)
2006-10-23 11:24:05 8379 母版页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:05 8479 内容页控件 Button_Unload
2006-10-23 11:24:05 8679 内容页UC控件 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:05 8780 母版页 Page_Unload (当服务器控件从内存中卸载时发生。)
2006-10-23 11:24:05 8880 内容页 Page_Unload (当服务器控件从内存中卸载时发生。)
转载