正文

供求信息網(wǎng)(14)

ASP.NET項目開發(fā)案例全程實錄(第2版) 作者:明日科技


 

除了開頭的@Master指令和一個或多個ContentPlaceHolder服務(wù)器控件外,母版頁類似于普通的ASP.NET頁。ContentPlaceHolder控件在母版頁中定義一個可以在派生頁中進行定制的區(qū)域。

% 注意:ContentPlaceHolder控件只能在母版頁中使用。如果在平常的Web網(wǎng)頁發(fā)現(xiàn)這樣一個控件,則會發(fā)生一個解析器錯誤。

? 內(nèi)容頁。

內(nèi)容頁與普通頁基本相同。內(nèi)容頁主要包含頁面中的非公共內(nèi)容,每個內(nèi)容頁定義一個特定的ASP.NET頁上每個區(qū)域的內(nèi)容。通過創(chuàng)建各個內(nèi)容頁來定義母版頁的占位符控件的內(nèi)容,這些內(nèi)容頁為綁定到特定母版頁的ASP.NET頁(.aspx文件以及可選的代碼隱藏文件)。內(nèi)容頁的關(guān)鍵部分是Content控件,它是其他控件的容器。Content控件只能與對應(yīng)的ContentPalceHolder控件結(jié)合使用,不是一個獨立的控件。

% 注意:內(nèi)容頁(即綁定到一個母版頁的網(wǎng)頁)是一種特殊的網(wǎng)頁類型,它只能包含<asp:Content>控件。另外,它不允許在<asp:Content>標簽外部提供服務(wù)器控件。

3.母版頁的配置

在ASP.NET 3.5中,母版頁的配置有3種級別,即頁面指令級、應(yīng)用程序級、文件夾級。

? 頁面指令級。

內(nèi)容頁通過@Page指令的MasterPageFile屬性綁定到母版頁,代碼如下:

<%@ Page Language="C#" MasterPageFile="MasterPage.master"%>

? 應(yīng)用程序級。

應(yīng)用程序級綁定可以指定應(yīng)用程序中的所有網(wǎng)頁綁定到相同的母版頁。通過設(shè)置主要的Web.config配置文件的<Pages>元素的Master屬性,配置這種行為的代碼如下:

<configuration>

<system.Web>

<pages master=” MasterPage.master”

</system.Web>

</configuration>

? 文件夾級。

類似于應(yīng)用程序級的綁定,不同的是只需在一個文件夾的Web.config文件中進行設(shè)置,然后母版頁綁定便會應(yīng)用于該文件夾中的全部ASP.NET頁。

4.創(chuàng)建母版頁

在ASP.NET 2.0中,除了具有辨識意義的@Master指令外,母版頁與標準的ASP.NET頁基本類似,唯一的重要區(qū)別就是ContentPlaceHolder服務(wù)器控件。但母版頁中包含的是頁面的公共部分,因此在創(chuàng)建母版頁之前,必須判斷哪些內(nèi)容是頁面的公共部分。

使用Visual Studio 2008創(chuàng)建母版頁,具體操作步驟如下。

(1)打開Visual Stuido 2008,新建一個ASP.NET網(wǎng)站,編程語言采用C#。

(2)在Visual Stuido 2008環(huán)境菜單欄中選擇“網(wǎng)站”/“添加新項”命令,或在右擊彈出的快捷菜單中選擇“添加新項”命令,打開“添加新項”對話框,如圖1.22所示。在“模板”列表框中選擇“母版頁”選項,在“名稱”文本框中將其命名為MasterPage.master。

(3)單擊“添加”按鈕,“母版頁”即添加到解決方案資源管理器中,如圖1.23所示。

(4)本網(wǎng)站設(shè)計后的“母版頁”如圖1.24所示。

% 注意:圖1.24中ContentPlaceHolder部分稱為占位符,具體在頁面上顯示什么內(nèi)容,則由內(nèi)容頁來決定。

5.創(chuàng)建內(nèi)容頁

在創(chuàng)建完母版頁之后,創(chuàng)建內(nèi)容頁。內(nèi)容頁的創(chuàng)建與母版頁的創(chuàng)建類似,具體步驟如下。

(1)在Visual Stuido 2008環(huán)境菜單欄中選擇“網(wǎng)站”/“添加新項”命令,或在右擊彈出的快捷菜單中選擇“添加新項”命令,打開“添加新項”對話框,如圖1.25所示。在“模板”列表框中選擇“Web窗體”選項,在“名稱”文本框中將其命名為Default.aspx,同時選中“將代碼放在單獨的文件中”和“選擇母版頁”復(fù)選框。

注意:(1)內(nèi)容頁與普通.aspx頁面的擴展名相同。

(2)選中“將代碼放在單獨的文件中”和“選擇母版頁”復(fù)選框可以將內(nèi)容頁與母版頁綁定。

(2)單擊“添加”按鈕,打開“選擇母版頁”對話框,如圖1.26所示。在該對話框中選擇上面創(chuàng)建的母版頁,單擊“添加”按鈕,就可以創(chuàng)建一個新的內(nèi)容頁。

(3)通過“母版頁”生成的頁面如圖1.27所示。

注意:(1)內(nèi)容頁中可以有多個Content服務(wù)器控件,但內(nèi)容頁里的Content服務(wù)器控件的

ContentPlaceHolderID屬性值必須與母版頁中的ContentPlaceHolder服務(wù)器控件的ID屬性匹配。

(2)由于母版頁里定義了頁面的標題title元素,不同的內(nèi)容頁顯示的標題可能不同,此時需要在內(nèi)容頁中設(shè)置頁面的標題,可以通過設(shè)置頁面指令的Title屬性定義。

(3)與母版頁一樣,Visual Studio 2008支持對于內(nèi)容頁的可視化編輯,并且這種支持是建立在只讀顯示母版頁內(nèi)容基礎(chǔ)上的。在編輯狀態(tài)下,可以查看母版頁和內(nèi)容頁組合后的頁面外觀,但是,母版頁內(nèi)容是只讀的(呈灰色部分),不可被編輯,而內(nèi)容頁則可以進行編輯。如果需要修改母版頁內(nèi)容,則必須打開母版頁。

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號