ASP.NET Lab

The Best Web, The Best Future

博客园 首页 新随笔 订阅 管理

控制页可以被嵌套使用,即在一个控制页中可以对其他的控制页进行引用。嵌套的控制页允许你创建结构化的控制页。例如,某个大型网站中可能包含有一个定义网站外观的全局控制页。然后针对不同的网站栏目内容而定义不同的子控制页,并对全局网站控制页进行引用,从而对网站栏目的内容进行外观定义。

与任何一个控制页一样,子控制页文件的扩展名也是 .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" >
<body>
<form id="Form1" runat="server">
<div>
<h1>父控制页</h1>
<p>
<font color="red">这是父控制页的内容。</font>
</P>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</form>
</body>
</html>

下例代码是子控制页文件:

<%@ Master Language="C#" master="Parent.master"%> 
<asp:Content id="Content1" ContentPlaceholderID="MainContent" runat="server">
   <asp:panel runat="server" id="panelMain" backcolor="lightyellow">
   <h2>子控制页</h2>
      <asp:panel runat="server" id="panel1" backcolor="lightblue">
        <p>这是子控制页的内容。</p>
        <asp:ContentPlaceHolder ID="Content1" runat="server" />
      </asp:panel>
      <asp:panel runat="server" id="panel2" backcolor="pink">
         <p>这是子控制页的内容。</p>
         <asp:ContentPlaceHolder ID="Content2" runat="server" />
      </asp:panel>
   </asp:panel>
</asp:Content>

下例代码是引用子控制页的内容页文件:

<%@ Page Language="C#" master="Child.Master"%>
<asp:Content id="Content1" ContentPlaceholderID="Content1" runat="server">
   <asp:Label runat="server" id="Label1" 
        text="子标签 1" font-bold="true" />
   <br>
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="Content2" runat=server>
   <asp:Label runat="server" id="Label2" 
        text="子标签 2" font-bold=true/>
</asp:Content>
posted on 2006-12-27 17:48  Laeb  阅读(467)  评论(0编辑  收藏  举报