ASP.Net巧用窗體母版頁實例
來源:易賢網(wǎng) 閱讀:637 次 日期:2014-12-01 11:53:31
溫馨提示:易賢網(wǎng)小編為您整理了“ASP.Net巧用窗體母版頁實例”,方便廣大網(wǎng)友查閱!

本文實例講述了ASP.Net巧用窗體母版頁的方法。分享給大家供大家參考。具體分析如下:

背景:每個網(wǎng)頁的基本框架結(jié)構(gòu)類似:

瀏覽網(wǎng)站的時候會發(fā)現(xiàn),好多網(wǎng)站中,每個網(wǎng)頁的基本框架都是一樣的,比如,最上面都是網(wǎng)站的標題,中間是內(nèi)容,最下面是網(wǎng)站的版權(quán)、開發(fā)提供商等信息:

在這些網(wǎng)頁中,表頭、底部的樣式和內(nèi)容都是一樣的,不同的只是中間的內(nèi)容。

因此在制作網(wǎng)站時,可以將這些共同的東西分離出來,放到“窗體母版頁”中,在需要的時候嵌套就可以。

巧用窗體母版項:

下面就開始行動(本文是以VisualStudio2013作為編程環(huán)境,可能在某些步驟與其他版本有所出入,請自行注意):

1、在項目中添加一Web窗體母版頁test.Master:右鍵項目—添加—新建項—Web窗體母版頁;

復(fù)制代碼 代碼如下:<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="test.master.cs" Inherits="Web.test1" %>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title></title>

<asp:ContentPlaceHolder ID="head" runat="server">

<form id="form1" runat="server">

<div>

</asp:contentplaceholder>

</div>

</form>

<!--html>

2、在窗體母版頁test.Master的標記之間添加CSS、JS等引用(這里先只添加CSS文件為例):

復(fù)制代碼 代碼如下:<link href="css/common.css" rel="stylesheet"> <%--添加引用CSS文件--%>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title></title>

</asp:contentplaceholder>

3、編輯窗體母版頁test.Master,添加每個網(wǎng)頁的公共內(nèi)容(此處以網(wǎng)頁布局為上圖的布局為例,三個div的css樣式就暫不說明):

復(fù)制代碼 代碼如下:<form id="form1" runat="server">

<div id="top"> <%--每個網(wǎng)頁的公共樣式:網(wǎng)頁頭部--%>

<h1>某某某網(wǎng)站</h1>

</div>

<div id="main"> <%--每個網(wǎng)頁的不同樣式:網(wǎng)頁主體內(nèi)容--%>

<%--此處為每個嵌套此母版的各個網(wǎng)頁的不同內(nèi)容--%>

</asp:contentplaceholder>

</div>

<div id="footer"> <%--每個網(wǎng)頁的公共樣式:網(wǎng)頁版權(quán)信息區(qū)--%>

<p>版權(quán)所有:******</p>

</div>

</form>

4、在每個網(wǎng)頁中嵌套窗體母版頁test.Master:右鍵項目—添加—新建項—包含母版頁的Web窗體test.aspx,在選擇母版頁對話框中選擇test.Master,確定,生成的網(wǎng)頁為:

復(fù)制代碼 代碼如下:<%@ Page Title="\" Language="C#" MasterPageFile="~/common.Master" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="Web.test2" %>

</asp:content>

</asp:content>

此時這個窗體test.aspx和母版頁test.Master的運行效果是一樣的,接下來就是加上每個網(wǎng)頁中的不同的內(nèi)容。

5、此時,網(wǎng)頁test.aspx中ContentPlaceHolderID=“head”和ContentPlaceHolderID=“contentPlaceHolder”的就相當于母版頁test.Master中對應(yīng)的。所以假如每個網(wǎng)頁都會有相同部分,就可以把相同部分寫在母版頁的相應(yīng)位置,而將每個網(wǎng)頁的不同內(nèi)容寫在ContentPlaceHolderID=“contentPlaceHolder”的中。

比如,第4步中,這個test.aspx已經(jīng)嵌套了這個樣式,它的主題內(nèi)容為 “ 網(wǎng)站內(nèi)容 網(wǎng)站內(nèi)容 網(wǎng)站內(nèi)容 網(wǎng)站內(nèi)容…… ”,則test.aspx中的代碼為:

復(fù)制代碼 代碼如下:<%@ Page Title="\" Language="C#" MasterPageFile="~/common.Master" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="Web.test2" %>

</asp:content>

<p>網(wǎng)站內(nèi)容 網(wǎng)站內(nèi)容 網(wǎng)站內(nèi)容 網(wǎng)站內(nèi)容…… </p>

</asp:content>

假如我又建了一個名為test1.aspx的網(wǎng)頁,除了與test1.aspx中的主體內(nèi)容不一樣之外,其他都一樣,那么就可以讓test1.aspx嵌套母版頁test.Master,代碼為:

復(fù)制代碼 代碼如下:<%@ Page Title="\" Language="C#" MasterPageFile="~/common.Master" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="Web.test2" %>

</asp:content>

<p>網(wǎng)站內(nèi)容1 網(wǎng)站內(nèi)容1 網(wǎng)站內(nèi)容1 網(wǎng)站內(nèi)容1…… </p>

</asp:content>

拓展:母版頁嵌套母版頁

當整個網(wǎng)站內(nèi)的所有網(wǎng)頁并不是這一種樣式,而是一個大的網(wǎng)站分為幾個欄目,每個欄目中網(wǎng)頁的風格樣式統(tǒng)一,這時候可以用母版頁來嵌套母版頁 :

現(xiàn)在再建立一個母版頁(我在這里給它取名為“子母版頁”),用它來嵌套上面的母版頁test.Master,代碼為:

復(fù)制代碼 代碼如下:<%@ Master Language="C#" MasterPageFile="~/test.Master" AutoEventWireup="true" CodeBehind="m_common.master.cs" Inherits="Web.admin.m_common" %>

</asp:content>

<%--此處為嵌套“子母版頁”的各個網(wǎng)頁的不同內(nèi)容--%>

</asp:contentplaceholder>

</asp:content>

注意,代碼第一行的MasterPageFile=“~/test.Master”即要嵌套的母版頁的地址,“~”為當前目錄。

嵌套網(wǎng)頁母版項的好處:

可以利用VisualStudio中的窗體母版頁來將每個頁面中相同的部分進行封裝,在創(chuàng)建相同結(jié)構(gòu)的網(wǎng)頁時,便可以直接嵌套這個窗體母版頁,避免了代碼的重復(fù),提高了代碼的復(fù)用性;另外,如果要修改一個欄目甚至整個網(wǎng)站的風格,則只需修改母版頁以及母版頁中引入的<script>等文件,提高了代碼的可維護性,充分體現(xiàn)了OOP的思想。

希望本文所述對大家的asp.net程序設(shè)計有所幫助。

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:ASP.Net巧用窗體母版頁實例

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)