加载时或加载每个内容页后激发的母版页事件



在加载每个内容页面时,我想获得内容页面名称。所以我想知道在每次内容页面加载时会触发哪个母版页事件?

这里有一个可能会有所帮助的资源,它说明了ASP.NET页面的事件:

http://weblogs.asp.net/ricardoperes/archive/2009/03/08/asp-net-page-events-lifecycle.aspx

  1. Page.OnPreInit
  2. MasterPageControl.OIn(用于主页上的每个控件)
  3. Control.OIn(对于页面上的每个控件)
  4. 主页。内置
  5. Page.OIn
  6. Page.O完成
  7. Page.LoadPageStateFromPersistenceMedium
  8. Page.LoadViewState
  9. MasterPage.LoadViewState
  10. 页面.加载
  11. Page.Onlad
  12. 主页。加载
  13. MasterPageControl.Onlad(用于主页面上的每个控件)
  14. Control.Onlad(针对页面上的每个控件)
  15. OnXXX(控制事件)
  16. MasterPage.OnBubble事件
  17. Page.OnBubble事件
  18. Page.OnladComplete
  19. Page.OnPrender
  20. MasterPage.OnPrender
  21. MasterPageControl.OnPreRender(用于主页面上的每个控件)
  22. Control.OnRepender(用于页面上的每个控件)
  23. Page.OnPrenderComplete
  24. MasterPageControl.SaveControlState(用于主控网上的每个控件第页)
  25. Control.SaveControlState(对于页面上的每个控件)
  26. Page.SaveViewState
  27. MasterPage.SaveViewState
  28. Page.SavePageStateToPersistenceMedium
  29. Page.OnSaveStateComplete
  30. MasterPageControl.Ounload(对于主页面上的每个控件)
  31. Control.Ounload(对于页面上的每个控件)
  32. 主页。卸载
  33. 页面。卸载

这里还有关于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){//在这里办事

最新更新