Listing 1: Sample Master Page(Sample.master)

<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>

Listing 2: Sample Content Page (SampleContent.aspx)

<%@ Page Language="C#" MasterPageFile="~/Sample.master" Title="Untitled Page"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">
</asp:Content>

Listing 3: Master Page code (MyMaster1.master)

<%@ Master Language="C#" CompileWith="MyMaster1.master.cs" ClassName="MyMaster1_master" %>
<!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>Master Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <table width="100%">
            <tr>
                <td colspan="2">
                    <img style="width: 743px; height: 53px" src="toppic.jpg" />
                </td>
            </tr>
            <tr>
                <td style="height: 13px" align="center" colspan="2">
                    <b>Welcome to the world of Master Pages</b></td>
            </tr>
            <tr>
                <td align="center">
                     <asp:ContentPlaceHolder ID="ContentPlaceHolder1"
					 Runat="server"></asp:ContentPlaceHolder>
                </td>
                <td align="center">
                    <asp:ContentPlaceHolder ID="ContentPlaceHolder2"
					Runat="server"></asp:ContentPlaceHolder>
                </td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    Copyright John Doe 2004</td>
            </tr>
        </table>

    </form>
</body>
</html>

Listing 4: Mark up of the Content Page (MyContentPage.aspx)

<%@ Page Language="C#" MasterPageFile="~/MyMaster1.master"
CompileWith="MyContentPage.aspx.cs" ClassName="MyContentPage_aspx" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">
    This is from Content 1</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="server">
    This is from Content 2
</asp:Content>

Listing 5: Parent master page(ParentMaster.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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div><b>This is from the Parent Master </b><br />
     <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
	 </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>

Listing 6: Child master page (ChildMaster.master)

<%@ Master Language="C#" MasterPageFile="~/ParentMaster.master"%>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server" >
This is from the child master<br />
<asp:contentplaceholder id="ChildContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</asp:Content>

Listing 7: Content Page (NestedMasterPages.aspx)

<%@ Page Language="C#" MasterPageFile="~/ChildMaster.master" Title="Untitled Page"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ChildContentPlaceHolder1" Runat="server">
This is from Content Page<br/></asp:Content>

Listing 8: Master page used (AccessMasterProperties.master)

<%@ Master Language="C#"  ClassName="AccessMasterProperties_master" %>
<!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>Master Page</title>
</head>
<script runat ="server">
 public string LabelText
    {
        set
        {
            Label2.Text = value;
        }
    } 
 </script>
<body>
    <form id="form1" runat="server">
        <table width="100%">
            <tr><td colspan="2">
                    <img style="width: 743px; height: 53px" src="toppic.jpg" /></td> </tr>
            <tr><td style="height: 13px" align="center" colspan="2">
                    <b>Welcome to the world of Master Pages</b></td>
            </tr><tr>
                <td align="center" style="height: 221px">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1"
				Runat="server"></asp:ContentPlaceHolder>
                </td>
                <td align="center" style="height: 221px">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder2"
				Runat="server"></asp:ContentPlaceHolder>
                </td></tr>
            <tr><td align="center" colspan="2">
                <asp:Label ID="Label1" Runat="server" Text="Label"></asp:Label></td></tr>
            <tr><td align="center" colspan="2">
                    <asp:Label ID="Label2" Runat="server"
					Text="Label"></asp:Label></td></tr>
            <tr><td align="center" colspan="2">
			Copyright John Doe 2004</td></tr>
        </table>
    </form>
</body>
</html>

Listing 9: Content page used to access master page controls (AccessMasterPage_Content.aspx)

<%@ Page Language="C#" MasterPageFile="~/AccessMasterProperties.master"
 ClassName="AccessMasterPage_Content_aspx" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/AccessMasterProperties.master" %>
 <script runat="server" >
       void Page_Load(object sender, EventArgs e)
       {
           //Accessing the master page properties Approach 1
		   Master.LabelText = "Set from content page using Early binding";

           //Accessing the master page Approach 2
           Label myLabel = (Label) Master.FindControl("Label1");
           myLabel.Text = "Set from content page using Late binding";
        }
  </script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">
    This is from Content 1</asp:Content>

Listing 10: Dynamically changing the master page (DynamicMaster.aspx)

<%@ Page Language="C#" Title="Untitled Page"%>
<script runat="server">
   void Page_PreInit(Object sender, EventArgs e)
    {
        if(Request["Mast"]!=null)
            MasterPageFile =Request["Mast"];
        else
            MasterPageFile = "~/MasterPage1.master";
    }
    void Button1_Click(object sender, EventArgs e)
    {
Response.Redirect(Request.Path + "?Mast=" + MasterDDL.SelectedItem.Value);
    }
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
 Runat="server">
<asp:Label id=Label1 runat="server" Text="Select the Master Page" Font-Bold="True"></asp:Label>
<asp:DropDownList id=MasterDDL runat="server"><asp:ListItem Value="~/MasterPage1.master">MasterPage1</asp:ListItem>
<asp:ListItem Value="~/MasterPage2.master">MasterPage2</asp:ListItem>
</asp:DropDownList>
<asp:Button id=Button1 runat="server" Text="Button" OnClick="Button1_Click">
</asp:Button>
</asp:content>

Listing 11 A:Content page with device specific  masterpages (DeviceSpecificContent.aspx)

<%@ Page Language="C#" Mozilla:MasterPageFile="~/MozillaMasterPage.master"
 ie:MasterPageFile="~/MyIEMasterPage.master" Title="Untitled Page"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">
    This is from  the Content Page
</asp:Content>

Additional Code for This Article 17.9 KB