1

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

4

2 回答 2

2

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

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

  1. Page.OnPreInit
  2. MasterPageControl.OnInit(用于母版页上的每个控件)
  3. Control.OnInit(针对页面上的每个控件)
  4. MasterPage.OnInit
  5. Page.OnInit
  6. Page.OnInitComplete
  7. Page.LoadPageStateFromPersistenceMedium
  8. Page.LoadViewState
  9. MasterPage.LoadViewState
  10. Page.OnPreLoad
  11. Page.OnLoad
  12. MasterPage.OnLoad
  13. MasterPageControl.OnLoad(对于母版页上的每个控件)
  14. Control.OnLoad(针对页面上的每个控件)
  15. OnXXX(控制事件)
  16. MasterPage.OnBubbleEvent
  17. Page.OnBubbleEvent
  18. Page.OnLoadComplete
  19. Page.OnPreRender
  20. MasterPage.OnPreRender
  21. MasterPageControl.OnPreRender(用于母版页上的每个控件)
  22. Control.OnPreRender(针对页面上的每个控件)
  23. Page.OnPreRenderComplete
  24. MasterPageControl.SaveControlState(对于母版页上的每个控件)
  25. Control.SaveControlState(针对页面上的每个控件)
  26. Page.SaveViewState
  27. MasterPage.SaveViewState
  28. Page.SavePageStateToPersistenceMedium
  29. Page.OnSaveStateComplete
  30. MasterPageControl.OnUnload(针对母版页上的每个控件)
  31. Control.OnUnload(针对页面上的每个控件)
  32. MasterPage.OnUnload
  33. Page.OnUnload

这里还有关于 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");
}
于 2013-02-15T12:45:44.623 回答
0

Please try with below event

protected override void OnInit(EventArgs e) { //do your stuff here }

于 2013-02-15T12:44:41.087 回答