Master Page和Content Page都可以包含控件的事件处理程序。对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。控件事件不会从内容页发送到母版页。同样,也不能在内容页中处理来自母版页控件的事件。
内容页和母版页中会引发相同的事件。例如,两者都引发 Init 和 Load 事件。引发事件的一般规则是初始化事件从最里面的控件向最外面的控件引发,所有其他事件则从最外面的控件向最里面的控件引发。请记住,母版页会合并到内容页中并被视为内容页中的一个控件,这一点十分有用。
下面是母版页与内容页合并后事件的发生顺序:
· MasterPage Init
· ContentPage Init
· MasterPage Init
· ContentPageInit
· ContentPage Load
· MasterPage Load
· ContentPage Load
· ContentPage PreRender
· MasterPage PreRender
· MasterPage PreRender
· ContentPage PreRender
如果您创建的事件处理程序取决于某些事件的可用性,那么您将发现,了解母版页和内容页中的事件顺序很有帮助。
单独一个Page的事件处理激活顺序:
· PreInit
· Init
· InitComplite
· PreLoad
· Load
· LoadComplete
· PreRender
· PreRenderComplete
如果使用了MasterPage,则MasterPage中的事件和ContentPage中的事件按照下面顺序激活:
· ContentPage.PreInit
· Master.Init
· ContentPage.Init
· ContentPage.InitComplite
· ContentPage.PreLoad
· ContentPage.Load
· Master.Load
· ContentPage.LoadComplete
· ContentPage.PreRender
· Master.PreRender
· ContentPage.PreRenderComplete