Master
Page:
Page with .master extension. Includes a complete web page structure.
User <@Master> instead of <@Page> directive. Contains a
ContentPlaceHolder.
To
Attach Master Page at Page Level:
To
attach Master Page to all page in web.config.
Only
pages with <Content> controls.
One
can also specify master page for each folder in web application by providing a
different web.config for each folder.
Referencing
Master page Properties, Methods and Controls from Content Page:
To
do this Refer to the property or control of Master page in content page use<@MasterType>
declaration.
<@
MasterType virtualpath = “~/MainTheme.master”>
In
case of multiple base pages all master page should inherit from the a single
base page. Then use that base Master Page as <@MasterType>.
To
reference properties use:
Master.CompanName;
Referencing
controls in Master Page:
Label
companyName = (Label) Master.FindControl(“lblCompanyName”);
Handling
Events when working with Master Pages:
The
following is the sequence in which events occur when a master page is merged
with a content page:
1. Master
page controls Init event.
2. Content
controls Init event.
3. Master
page Init event.
4. Content
page Init event.
5. Content
page Load event.
6. Master
page Load event.
7. Content
controls Load event.
8. Content
page PreRender event.
9. Master
page PreRender event.
10. Master
page controls PreRender event.
11. Content
controls PreRender event.
Creating
Nested Master Pages:
B master page inherits A master page.
So, B’s Page directive will look like:
<@Master
language = “C#” master = “A.Master” >
<asp:Content
>
to Cover A’s ContentPlaceHolder
<!---
Some Extra HTML -->
<asp:ContentPlaceHolder>
</asp:ContentPlaceHolder
</asp:Content>
Dynamically
Changing the Master Page:
To
dynamically alter the master Page one will have to override Page_PreInit().
Void Page_PreInit(Object sender, EventArgs e)
{ MasterPageFile = “MasterPage2.master”; }