天天看点

MasterPage母版页嵌套,控件、变量的访问

1. 嵌套母版页

(1) 主母版页 MainMasterPage.master

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMasterPage.master.cs"

    Inherits="MainMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title></title>

   </head>

<body leftmargin="0" topmargin="0">

    <form id="form1" runat="server">

        <div align="center">

            <table width="763" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">

                <tr>

                    <td width="763" valign="top">

                        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                        </asp:ContentPlaceHolder>

                    </td>

                </tr>

            </table>

        </div>

    </form>

</body>

</html>

(2)子母版页 (这种只能手动创建这文件)

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="SubMasterPage.master.cs" MasterPageFile="~/MainMasterPage.master"

    Inherits="SubMasterPage" %>

<asp:content id="Content1" contentplaceholderid="ContentPlaceHolder1" runat="server">

    <table width="100%" border="0" cellspacing="0" cellpadding="0">

        <tr>

            <td width="244" valign="bottom">

                <img src="images/pagepic.gif" width="244" height="223">

                <h1>

                    以上内容来自子母版页</h1>

            </td>

            <td valign="top" align="left">

                <asp:ContentPlaceHolder ID="ContentPlaceHolder2" Runat="server">

                </asp:ContentPlaceHolder></td>

        </tr>

    </table>

</asp:content>

(3)内容页

<%@ Page Language="C#" MasterPageFile="~/SubMasterPage.master" AutoEventWireup="true"

    CodeFile="Index.aspx.cs" Inherits="Index" Title="示例5-2" %>

<asp:Content ID="Content2" ContentPlaceHolderID="contentPlaceHolder2" runat="server">

    <p>

        &nbsp;</p>

    <p>

        &nbsp;</p>

    <h1>

        网站介绍</h1>

    <p>

        本页面采用来自ASP.NET 2.0技术的母版页新特性进行开发。 主要包括两个页面:母版页和内容页。 母版页后缀名是.master,其封装网站中的共用元素。 内容页实际是普通的.aspx文件,它包含除母版页的其他内容。

        在运行时,ASP.NET引擎将两种页面内容合并执行,最后将结果发给客户端浏览器。</p>

        <br>

        <h1>

            以上内容来自内容页</h1>

</asp:Content>

2.  访问母版页控件和属性

    (1)  母版页后台代码访问

   在母版页前台页面中添加一个服务器控件

<asp:Label ID="LabelInMaster" runat="server"></asp:Label>

   然后在母版页的Page_Load事件中写代码

    protected void Page_Load(object sender, EventArgs e)

    {

        LabelInMaster.Text = "现在时间:" + System.DateTime.Now.ToShortTimeString();

    }

   (2) 在内容页面中调用母版页控件

      在母版添加控件和属性

<asp:Label ID="Label1" runat="server"></asp:Label>

    public Label MasterPageLabel

    {

        get

        {

            return Label1;

        }

        set

        {

            Label1 = value;

        }

    }

      先要在内容页面中添加

      <%@ MasterType VirtualPath="~/MasterPage22.master" %>

      然后后台才能调用

    protected void Page_Load(object sender, EventArgs e)

    {

        Master.MasterPageLabel.Text = "现在时间:" + System.DateTime.Now.ToShortTimeString();

        Master.MasterPageLabel.Font.Size = 20;

    }

  (3)  同上,内容页面设置变量的值(绑定值)

在母版添加绑定标识、变量和属性

<%= LabelText %>

    string _labelText = "";

    public String LabelText

    {

        get

        {

            return _labelText;

        }

        set

        {

            _labelText = value;

        }

    }

   同上在内容页面里加上:

   <%@ MasterType VirtualPath="~/MasterPage33.master" %>

   在后台代码中

    protected void Page_Load(object sender, EventArgs e)

    {

        Master.LabelText = "现在时间:" + System.DateTime.Now.ToShortTimeString();

    }