ネストされたASP.NETコントロールページ

2643 ワード

制御ページはネストされて使用できます.すなわち、1つの制御ページで他の制御ページを参照できます.ネストされた制御ページを使用すると、構造化された制御ページを作成できます.たとえば、大規模なWebサイトには、Webサイトの外観を定義するグローバル制御ページが含まれている場合があります.次に、異なるWebサイトの欄の内容に対して異なるサブコントロールページを定義し、グローバルWebサイトのコントロールページを参照して、Webサイトの欄の内容を外観定義します.
いずれの制御ページと同様に、サブ制御ページファイルの拡張子も.master.サブコントロール・ページには、通常、コンテンツ・ディスペンサーにマッピングされたコンテンツ・コントロールが含まれます.このような関係の下で、サブ制御ページは、任意のコンテンツページのように表示することができる.ただし、サブ制御ページは、同様に独自のコンテンツプレースホルダを有し、サブページにコンテンツ表示を提供する.次の例に示す3つのページは、ネストされた制御ページ間の関係を説明します.
次の例のコードは、親制御ページファイルです.


<% @ 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>