在加载每个内容页面时,我想获得内容页面名称。所以我想知道在每次内容页面加载时会触发哪个母版页事件?
这里有一个可能会有所帮助的资源,它说明了ASP.NET页面的事件:
http://weblogs.asp.net/ricardoperes/archive/2009/03/08/asp-net-page-events-lifecycle.aspx
- Page.OnPreInit
- MasterPageControl.OIn(用于主页上的每个控件)
- Control.OIn(对于页面上的每个控件)
- 主页。内置
- Page.OIn
- Page.O完成
- Page.LoadPageStateFromPersistenceMedium
- Page.LoadViewState
- MasterPage.LoadViewState
- 页面.加载
- Page.Onlad
- 主页。加载
- MasterPageControl.Onlad(用于主页面上的每个控件)
- Control.Onlad(针对页面上的每个控件)
- OnXXX(控制事件)
- MasterPage.OnBubble事件
- Page.OnBubble事件
- Page.OnladComplete
- Page.OnPrender
- MasterPage.OnPrender
- MasterPageControl.OnPreRender(用于主页面上的每个控件)
- Control.OnRepender(用于页面上的每个控件)
- Page.OnPrenderComplete
- MasterPageControl.SaveControlState(用于主控网上的每个控件第页)
- Control.SaveControlState(对于页面上的每个控件)
- Page.SaveViewState
- MasterPage.SaveViewState
- Page.SavePageStateToPersistenceMedium
- Page.OnSaveStateComplete
- MasterPageControl.Ounload(对于主页面上的每个控件)
- Control.Ounload(对于页面上的每个控件)
- 主页。卸载
- 页面。卸载
这里还有关于ASP.NET页面生命周期的官方文档,其中详细介绍了所有事件。希望这能对你有所帮助。
编辑;
嗯,实际上上面看起来有点过头了。看起来你所需要做的就是——在每个内容页面中,确保你引用了ASPX文件中的母版页:
<%@ MasterType virtualpath="~/Masters/Master1.master" %>
然后在母版页中有一个公共方法,例如:
public void LogContentPageName(string name)
{
// Do whatever you want with the passed name.
}
然后在内容页面的Page_Load事件中,您可以执行以下操作:
protected void Page_Load(object sender, Eventargs e)
{
Master.LogContentPageName("Whatever");
}
请尝试以下事件
受保护的覆盖void OnInit(EventArgs e){//在这里办事