WebForm 主版頁面使用

來源:互聯網
上載者:User

標籤:charset   應用程式   javascrip   元素   --   複用   java   分網   efi   

首先來說一下什麼是主版頁面:

  • 主版頁面可以為應用程式中的頁建立一致的布局。單個主版頁面可以為應用程式中的所有頁(或一組頁)定義所需的外觀和標準行為。
  • 主版頁面的使用與普通頁面類似,可以在其中放置檔案或者圖形、任何的HTML控制項和Web控制項,後置代碼等。主版頁面的副檔名以.master結尾,不能被瀏覽器直接查看。主版頁面必須在被其他頁面使用後才能進行顯示。
  • 它的使用跟普通的頁面一樣,可以可視化的設計,也可以編寫後置代碼。與普通頁面不一樣的是,它可以包含ContentPlaceHolder控制項,ContentPlaceHolder控制項就是可以顯示內容頁面的地區。
  • 主版頁面僅僅是一個頁面模板,單獨的主版頁面是不能被使用者所訪問的。單獨的內容頁也不能夠使用。主版頁面和內容頁有著嚴格對應關係。主版頁面中包含多少個ContentPlaceHolder控制項,那麼內容頁中也必須設定與其相對應的Content控制項。當用戶端瀏覽器向伺服器發出請求,要求瀏覽某個內容頁面時,引擎將同時執行內容頁和主版頁面的代碼,並將最終結果發送給用戶端瀏覽器。

 

主版頁面具有下面的優點:
  • — 使用主版頁面可以集中處理頁的通用功能,以便可以只在一個位置上進行更新。
  • — 使用主版頁面可以方便地建立一組控制項和代碼,並將結果應用於一組頁。例如,可以在主版頁面上使用控制項來建立一個應用於所有頁的菜單。
  • — 通過允許控制預留位置控制項的呈現方式,主版頁面使您可以在細節上控制最終頁的布局。
  • — 主版頁面提供一個物件模型,使用該物件模型可以從各個內容頁自訂主版頁面。

 

一、主版頁面簡介

使用 ASP.NET 主版頁面可以為應用程式中的頁建立一致的布局。單個主版頁面可以為應用程式中的所有頁(或一組頁)定義所需的外觀和標準行為。

母片之所以稱為母片,就是將大部分網頁上固定內容,比如導覽列,著作權聲明欄放到一個母片裡,然後編寫網頁時只需要調用母片就行了,內容頁就不需要再寫那些內容了。不需要將相同的部分再寫一遍。母片中可以標記多個asp:ContentPlaceHolder。

主版頁面僅僅是一個頁面模板,單獨的主版頁面是不能被使用者所訪問的。單獨的內容頁也不能夠使用。主版頁面和內容頁有著嚴格對應關係。主版頁面中包含多少個ContentPlaceHolder控制項,那麼內容頁中也必須設定與其相對應的Content控制項。當用戶端瀏覽器向伺服器發出請求,要求瀏覽某個內容頁面時,引擎將同時執行內容頁和主版頁面的代碼,並將最終結果發送給用戶端瀏覽器。

在ASP.NET中主版頁面有兩種作用,一是提高代碼的複用(把相同的代碼抽出來),二是使整個網站保持一致的風格和樣式。

主版頁面無法直接啟動運行,需要套用的子頁面啟動把它帶出來

主版頁面的嵌套,一般用2層足夠,最多3層

二.建立主版頁面:

(1)可以建立一個全新的主版頁面,稱為一級主版頁面

(2)也可以建立另一種主版頁面,在某一個主版頁面基礎上,加上某些內容,讓建立的主版頁面稱為另一個主版頁面的子級,可以稱為二級模板頁

 

編寫主版頁面:

 

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="M1.master.cs" Inherits="M1" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <%--這裡可以寫CSS樣式,也可以引用外部樣式表--%>    <%--這個裡面什麼都不能寫,這個是留的空地,用來給子級和子二級主版頁面來填空的--%>    <asp:ContentPlaceHolder ID="head" runat="server">    </asp:ContentPlaceHolder>    <%--所有ContentPlaceHolder控制項在主版頁面中都不能填入內容--%></head><body>    <form id="form1" runat="server">        <div>            <%--body內的空白處用來填寫主版頁面的內容--%>            <%-- 表格,控制項,表單元素都可以放在這裡--%>            <%--這個裡面什麼都不能寫,這個是留的空地,用來給子級和子二級主版頁面來填空的--%>            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">            </asp:ContentPlaceHolder>            <%--所有ContentPlaceHolder控制項在主版頁面中都不能填入內容--%>            <%--body內的空白處用來填寫主版頁面的內容--%>        </div>    </form></body></html><script type="text/javascript">   </script>

 

在子級頁中操作主版頁面元素:

1.在主版頁面中寫一個方法, 的內容是輸入外部變數來操作主版頁面元素

2.在子級頁中執行個體化主版頁面:

  1. 主版頁面類型(在建立的時候取得啥名字就是啥類型)   m=this.Master as  主版頁面類型;
  2. 調用主版頁面的方法即可操作主版頁面元素

                                         

另外,主版頁面是可以嵌套的,即在原主版頁面的基礎上再建立主版頁面。這樣不僅進一步提高了代碼的複用,而且在使整個網站的外觀一致的基礎上,各個模組又有自己的子風格。比如一家公司的網站整體外觀是類似的,而各個部門又有自己的子外觀。

嵌套的主版頁面不會自動產生ContentPlaceHolder 控制項,需要手動寫入

在引用主版頁面的web表單內引用外部JavaScript檔案時,改變此表單的路徑,引用的js路徑不會改變,方法:

在主版頁面body中寫入:

<script src="<%=JS() %>"></script>

後台寫入方法;

public string  JS()

{ return ResolveClientUrl("寫入該JS相對於主版頁面的路徑");

//系統會自動匹配對應路徑

}

WebForm 主版頁面使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.