Dynamically change master page : Master page « Development « ASP.NET Tutorial






File: Default.aspx

<%@ Page Language="C#" MasterPageFile="Simple1.master" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" 
    Inherits="Default" 
    Title="Dynamic Masters"
%>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentOfThePage" runat="server">
    <h2>
        This content page is currently bound to <span style="color:Blue">
        <% =this.MasterPageFile %></span>.
    </h2>
</asp:Content>

File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default : System.Web.UI.Page
{
    protected void Page_PreInit(object sender, EventArgs e)
    {
    MasterPageFile = "simple2.master";
    }
}
File: simple1.master

<%@ Master  Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Hello, master pages</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Panel ID="HeaderPanel" runat="server" BorderStyle="Outset"
            BorderWidth="1px" Height="50px" Width="100%">
            <asp:Label style="margin:5px;" ID="TitleBox" runat="server" EnableTheming="False" Font-Bold="True" Font-Names="Impact"
                Text="Programming ASP.NET 3.5" Font-Size="XX-Large" ForeColor="Yellow" Width="100%"></asp:Label>
        </asp:Panel>

        <asp:contentplaceholder id="ContentOfThePage" runat="server">
        </asp:contentplaceholder>

        <asp:Panel ID="Panel1" runat="server" BorderStyle="Outset"
            BorderWidth="1px" Width="100%" HorizontalAlign="Right">
            <asp:Label style="margin:8px;" ID="SubTitleBox" runat="server" EnableTheming="False" 
                Font-Bold="True" Font-Names="Lucida Console"
                Text="Dino Esposito" Font-Size="Large" ForeColor="Orange"></asp:Label>
        </asp:Panel>        
    </div>
    </form>
</body>
</html>

File: simple2.master

<%@ Master  Language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Hello, master pages</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Panel ID="HeaderPanel" runat="server" BorderStyle="Outset"
            BorderWidth="1px" Height="50px" Width="100%">
            <asp:Label style="margin:5px;" ID="TitleBox" runat="server" EnableTheming="False" Font-Bold="True" Font-Names="Impact"
                Text="Programming ASP.NET 3.5" Font-Size="XX-Large" ForeColor="Yellow" Width="100%"></asp:Label>
        </asp:Panel>

        <asp:contentplaceholder id="ContentOfThePage" runat="server">
        </asp:contentplaceholder>

        <asp:Panel ID="Panel1" runat="server" BorderStyle="Outset"
            BorderWidth="1px" Width="100%" HorizontalAlign="Right">
            <asp:Label style="margin:8px;" ID="SubTitleBox" runat="server" EnableTheming="False" 
                Font-Bold="True" Font-Names="Lucida Console"
                Text="Dino Esposito" Font-Size="Large" ForeColor="Orange"></asp:Label>
        </asp:Panel>        
    </div>
    </form>
</body>
</html>








9.35.Master page
9.35.1.What is a Master page
9.35.2.How Master Pages and Content Pages Are Connected
9.35.3.A Master Page enables you to share the same content among multiple content pages.
9.35.4.Dynamically change master page
9.35.5.Table layout master page
9.35.6.Simplest Master page
9.35.7.Multipart master page
9.35.8.Master page with default content
9.35.9.Change master page in page init event
9.35.10.Nesting Master Pages
9.35.11.Deal with the relative path between master page and content page
9.35.12.Using the Title Attribute
9.35.13.Using the Page Header Property
9.35.14.Modifies the Master Page tags (the tags used by search engines when indexing a page).
9.35.15.Exposing Master Page Properties
9.35.16.Modify a control in a Master Page by using the FindControl() method in a content page.
9.35.17.Associate different Master Pages dynamically with a content page
9.35.18.Loading Master Pages Dynamically for Multiple Content Pages