Search code examples
asp.netmaster-pagespreinit

Why master page doesn't have PreInit event in ASP.NET?


The following is the sequence in which events occur when a master page is merged with a content page:

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.

But why master page doesn't have a PreInit event in ASP.NET?


Solution

  • Master pages inherits:System.Web.UI.MasterPage and as per the design of this MasterPage class no such PreInit event is defined for this class.

    Master pages are derived from Control class as seen in below hierarchy:

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

    Therefore as can be guessed now, Master pages behave and in essence are treated like a control and have events similar to other asp.net server controls.

    One suggested reading is this.