實現Master Page

來源:互聯網
上載者:User

實現Master Page

 

在ASP.NET v2.0中,Master Page實現為一個Web頁面,其中包含內容頁面可以使用的預設面板和操作方式。多個內容頁面只需提供合并到Master Page中的內容標記,即可使用這個Master Page的統一外觀和操作方式。本節的樣本將使用VS 2005建立一個Master Page和簡單的內容頁面。首先,建立一個新的Web項目,刪除自動建立的Default.aspx頁面。後面在建立使用Master Page的內容頁面時,將再次建立Default.aspx。(1) 要建立Master Page,在Solution Explorer中右擊Web項目,選擇Add New Item,再選擇Master Page,給它指定名稱Company.master,然後單擊OK按鈕。這將建立一個新的Master Page。(2) 如果Master Page在HTML視圖中,就單擊編輯器左下角的Design按鈕,把它切換到設計檢視。選擇Layout | Insert Table,給Company.master添加一個新表。(3) 在Insert Table對話方塊中,選擇Template,再從下拉式清單中選擇“Header, footer and side”,1-9所示。(4) 表添加到頁面上後,選擇最上面一行的儲存格,輸入“My Company Header”,選擇第二行的第一個儲存格,輸入“Menu Goes Here”,再選擇第三行(最後一行)的儲存格,輸入“Copyright (C) 2006 My Company, All Rights Reserved”。(5) 第一次建立Master Page時,它會自動添加一個ContentPlaceHolder控制項。Company. master也是如此。把ContentPlaceHolder控制項拖放到剛才插入Company.master的表中第二行的第二個儲存格中。結果 1-10所示。圖  1-9圖  1-10建立和修改Company.master後,就可以單擊編輯器左下角的HTML按鈕,查看自動產生的HTML代碼了。程式清單1-4列出了為Company.master進行上述修改後的HTML。程式清單1-4  格式化定製頁面元素的Master Page:Company.master<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Company.master.cs" Inherits="Company" %><!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 runat="server">    <title>My Company</title></head><body>    <form id="form1" runat="server">    <div>        <table border="0" cellpadding="0" cellspacing="0"                style="width: 100%; height: 100%">            <tr>                <td colspan="2" style="height: 200px">                    <h1>My Company Header</h1>                </td>            </tr>            <tr>                <td style="width: 200px">                    Menu Goes Here</td>                <td>        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">        </asp:contentplaceholder>                </td>            </tr>            <tr>                <td colspan="2" style="height: 200px">                    Copyright (C) 2006 My Company, All Rights Reserved                </td>            </tr>        </table>    </div>    </form></body></html>在程式清單1-4中,首先要注意,在頁面的頂部包含一個Master指令。如codefile和inherits特性所述,可以給Master Page添加一個代碼檔案。該頁面的大多數內容都是HTML格式化標記。這個頁面的另一個相關部分是contentplaceholder元素。可以在這裡放置預設內容,但內容頁面將使用id指定其內容顯示在什麼地方,這將覆蓋預設的內容。現在可以將這個Master Page用於任意內容頁面了。建立內容頁面的過程與建立其他Web表單非常相似。在Solution Explorer中右擊Web項目,選擇Add New Item,再選擇Web Form,接受推薦的名稱Default.aspx。選中Select Master Page選項,最後單擊OK按鈕。程式清單1-5列出了修改後的新內容頁面。程式清單1-5  使用Master Page的內容頁面: Default.aspx<%@ Page     Language="C#"     MasterPageFile="~/Company.master"     AutoEventWireup="true"     CodeFile="Default.aspx.cs"     Inherits="_Default"     Title="Content Page" %>        <asp:Content ID="Content1"                  ContentPlaceHolderID="ContentPlaceHolder1"                  Runat="Server">        <h2>This is my content.</h2>    </asp:Content>程式清單1-5中的兩個有趣的地方是MasterPageFile特性和Content元素。Page指令包含一個新特性MasterPageFile,它指定要使用的Master Page的檔案名稱。在程式清單1-5中,顯然內容頁面沒有像一般Web Form那樣的HTML標記。相反,用ContentPlaceHolderID特性指定contentplaceholder的id(在Master Page中),就可以添加一個Content元素,指定在Master Page的什麼地方放置內容標記。只有Content元素中的標記才顯示在Master Page中。由於沒有一般的HTML標記,例如Head,所以要用Head標題元素中的內容設定Page指令的Title特性。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.