【发布时间】:2008-09-24 15:35:22
【问题描述】:
哪些是 ASP .Net 服务器控件的事件,它们的顺序与包含页面的事件有何关系?
具体的问题是我正在寻找在包含页面的 Page_Load 事件之前触发的服务器控件内的事件。
【问题讨论】:
哪些是 ASP .Net 服务器控件的事件,它们的顺序与包含页面的事件有何关系?
具体的问题是我正在寻找在包含页面的 Page_Load 事件之前触发的服务器控件内的事件。
【问题讨论】:
关于它们与页面事件的关系,至少对于 Init 和 Load:
"虽然 Init 和 Load 都在每个控件上递归发生,但它们以相反的顺序发生。每个子控件的 Init 事件(以及 Unload 事件)发生在为其容器引发相应事件之前(自下而上) . 但是,容器的 Load 事件发生在其子控件的 Load 事件之前(自上而下)。"
【讨论】:
这应该会有所帮助:http://msdn.microsoft.com/en-us/library/ms178472.aspx
我想你正在寻找 PreLoad。
【讨论】:
这是一个小问题,因为可以在“Page_Load”事件之后将控件放在页面内。
在我的一个历史项目中,我从我的类“PageEx:System.Web.UI.Page”派生了所有页面。其中有一个类型为“enum PageStates { PreInit, Init, PostInit, PreLoad, /* etc... */ }”的属性“CurrentState”。比我所有的控件都能够识别页面周期的状态。
【讨论】:
ASP.NET 2.0 Event Order 有一个更长的列表(注意这是针对 2.0 的)。
【讨论】: