为什么母版页在ASP.NET中没有PreInit事件?

问题描述 投票:5回答:4

以下是主页与内容页合并时发生事件的顺序:

Content page PreInit event.
Master page controls Init event.
Content controls Init event.
Master page Init event.
Content page Init event.
Content page Load event.
Master page Load event.
Master page controls Load event.
Content page controls Load event.
Content page PreRender event.
Master page PreRender event.
Master page controls PreRender event.
Content page controls PreRender event.
Master page controls Unload event.
Content page controls Unload event.
Master page Unload event.
Content page Unload event.

但为什么母版页在PreInit没有ASP.NET事件?

asp.net master-pages preinit
4个回答
1
投票

Masterpage没有PreInit方法。

您可以采用多种替代方案。

1,为所有其他要继承的页面创建一个公共基页类,在该类中设置theme属性; http://www.odetocode.com/Articles/450.aspx


4
投票

母版页继承:System.Web.UI.MasterPage并且根据此MasterPage类的设计,没有为此类定义此类PreInit事件。

母版页从Control类派生,如下面的层次结构所示:

System.Object
  System.Web.UI.Control
    System.Web.UI.TemplateControl
      System.Web.UI.UserControl
        System.Web.UI.MasterPage

因此,正如现在可以猜到的那样,Master页面的行为和实质上被视为一个控件,并具有类似于其他asp.net服务器控件的事件。

一个建议阅读是this


0
投票

活动顺序如下:

  1. 用户控制初始化
  2. 母版页初始化
  3. 内容页面init
  4. LOAd内容页面加载
  5. LOAd主页面加载
  6. LOAd用户控制负载
  7. 内容页面渲染
  8. Master Page Pre Render
  9. 用户控制渲染

有关详细信息,请参阅以下链接;

http://getmscode.blogspot.in/2014/11/sequence-of-events-in-master-page-and.html


0
投票

与UrlMapping模型相同,创建一个应由IHttpModule生成的类,然后将其referance添加到Web.config

public class MasterPageModule: IHttpModule
{    
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender, EventArgs e)
{
 //your code
}
}


<httpModules>
   <addname="MasterPageModule"type="MasterPageModule"/>
</httpModules>
© www.soinside.com 2019 - 2024. All rights reserved.