|
母版頁中包含的是頁面公共部分,即網(wǎng)頁模板。因此,在創(chuàng)建示例之前,必須判斷哪些內(nèi)容是頁面公共部分,這就需要從分析頁面結(jié)構(gòu)開始。圖1所示顯示的是一個頁面截圖。在下文中,暫稱該頁面名為Index.ASPx,并且假設(shè)其為某網(wǎng)站中的一頁。通過分析可知,該頁面的結(jié)構(gòu)如圖5所示。

圖5 頁面結(jié)構(gòu)圖
頁面Index.ASPx由4個部分組成:頁頭、頁尾、內(nèi)容1和內(nèi)容2。其中頁頭和頁尾是Index.ASPx所在網(wǎng)站中頁面的公共部分,網(wǎng)站中許多頁面都包含相同的頁頭和頁尾。內(nèi)容1和內(nèi)容2是頁面的非公共部分,是Index.ASPx頁面所獨有的。結(jié)合母版頁和內(nèi)容頁的有關(guān)知識可知,如果使用母版頁和內(nèi)容頁來創(chuàng)建頁面Index.ASPx,那么必須創(chuàng)建一個母版頁MasterPage.master和一個內(nèi)容頁Index.ASPx。其中母版頁包含頁頭和頁尾等內(nèi)容,內(nèi)容頁中則包含內(nèi)容1和內(nèi)容2。
使用Visual Studio 2005創(chuàng)建一個普通Web站點,然后,在站點根目錄下創(chuàng)建一個名為MasterPage.master的母版頁。由于這是一個添加新文件的過程,因此,單擊“網(wǎng)站”命令菜單中的“添加新項..”選項,可以打開如圖6所示的窗口。

圖6 添加母版頁
由于此例創(chuàng)建的是母版頁,因此,需要選擇母版頁圖標(biāo),并且設(shè)置文件名為MasterPage.master。需要注意的是,該窗口中還有一個復(fù)選框項“將代碼放在單獨的文件中”。默認(rèn)情況下,該復(fù)選框處于選中狀態(tài)。表示Visual Studio 2005將會為MasterPage.master文件應(yīng)用代碼隱藏模型,即在創(chuàng)建MasterPage.master文件的基礎(chǔ)上,自動創(chuàng)建一個與該文件相關(guān)的MasterPage.master.cs文件。如果不選中該項,那么只會創(chuàng)建一個MasterPage.master文件而已。建議讀者選取該項。
在創(chuàng)建MasterPage.master文件之后,接著就可以開始編輯該文件了。根據(jù)前文說明,母版頁中只包含頁面公共部分,因此,MasterPage.master中主要包含的是頁頭和頁尾的代碼。具體源代碼如下所示:
母版頁MasterPage.master文件源代碼 |
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!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> <link href="css/myfreetemplates.css" rel="stylesheet" type="text/css" /> </head> <body background="http://www.68design.NET/art/images/pixi_lime.gif" 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" height="86" align="right" valign="top"> <img src="http://www.68design.NET/art/images/topic.gif"></td> </tr> <tr> <td width="763" height="53" align="right" valign="bottom" background="images/nav_bg.gif"></td> </tr> <tr> <td width="763" height="22" align="right" valign="top"><img src="http://www.68design.NET/art/images/toppic2.gif" width="763" height="22"></td> </tr> <tr> <td width="763" valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="244" valign="top"> <ASP:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"></ASP:ContentPlaceHolder> </td> <td valign="top" align="left"> <ASP:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server"></ASP:ContentPlaceHolder> </td> </tr> </table> </td> </tr> <tr> <td width="763" height="1" background="http://www.68design.NET/art/images/pixi_lime.gif"><img src="http://www.68design.NET/art/images/pixi_lime.gif" width="1" height="1"></td> </tr> <tr> <td width="763" height="35" align="center" class="baseline">©Copyright Study.Com 2006</td> </tr> </table> </div> </form> </body></html> |
以上是母版頁MasterPage.master的源代碼,與普通的.ASPx源代碼非常相似,例如,包括<html>、<body>、<form>等Web元素,但是,與普通頁面還是存在差異。差異主要有兩處(粗體代碼所示)。差異一是代碼頭不同,母版頁使用的是Master,而普通.ASPx文件使用的是Page。除此之外,二者在代碼頭方面是相同的。差異二是母版頁中聲明了控件ContentPlaceHolder,而在普通.ASPx文件中是不允許使用該控件的。在MasterPage.master的源代碼中,共聲明了兩個ContentPlaceHolder控件,用于在頁面模板中為內(nèi)容1和內(nèi)容2占位。ContentPlaceHolder控件本身并不包含具體內(nèi)容設(shè)置,僅是一個控件聲明。
圖7所示,顯示了MasterPage.master文件的設(shè)計時視圖。

圖7 母版頁設(shè)計時視圖
使用Visual Studio 2005可以對母版頁進(jìn)行編輯,并且它完全支持“所見即所得”功能。無論是在代碼模式下,還是設(shè)計模式下,使用Visual Studio 2005編輯母版頁的方法,與編輯普通.ASPx文件是相同的。圖中兩個矩形框表示ContentPlaceHolder控件。開發(fā)人員可以直接在矩形框中添加內(nèi)容,所設(shè)置內(nèi)容的代碼將包含在ContentPlaceHolder控件聲明代碼中。需要注意的是,這種方法是,不規(guī)范的,因此,不推薦使用這種做法。
AspNet技術(shù):ASP.NET 2.0 中的創(chuàng)建母版頁,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。