這篇文章主要介紹“如何在ASP.NET網(wǎng)頁模版中對內(nèi)容頁訪問母版頁的資源”,在日常操作中,相信很多人在如何在ASP.NET網(wǎng)頁模版中對內(nèi)容頁訪問母版頁的資源問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何在ASP.NET網(wǎng)頁模版中對內(nèi)容頁訪問母版頁的資源”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、河池網(wǎng)絡(luò)推廣、成都微信小程序、河池網(wǎng)絡(luò)營銷、河池企業(yè)策劃、河池品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供河池建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
母版資源頁代碼
〈%@ Master Language="C#" %〉 〈!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd"〉 〈script runat="server"〉 public void SetCurNavItem(int itemIndex) { nav.Items[itemIndex].Attributes.CssStyle. Add("color", "#FF0000"); } 〈/script〉 〈html xmlns="http://www.w3.org/1999/xhtml" 〉 〈head runat="server"〉 〈title〉Untitled Page〈/title〉 〈/head〉 〈body〉 〈form id="form1" runat="server"〉 〈div〉 〈asp:ContentPlaceHolder id="m_header" runat="server"〉 〈asp:BulletedList ID="nav" runat="server"〉 〈asp:ListItem Text="導(dǎo)航一"〉〈/asp:ListItem〉 〈asp:ListItem Text="導(dǎo)航二"〉〈/asp:ListItem〉 〈/asp:BulletedList〉 〈/asp:ContentPlaceHolder〉 〈asp:ContentPlaceHolder ID="m_content" runat="server"〉在 〈/asp:ContentPlaceHolder〉 〈asp:ContentPlaceHolder ID="m_footer" runat="server"〉 〈p〉版權(quán)所有〈/p〉 〈/asp:ContentPlaceHolder〉 〈/div〉 〈/form〉 〈/body〉 〈/html〉
ASP.NET網(wǎng)頁模板的內(nèi)容頁代碼
〈%@PageLanguage="C#"MasterPageFile=" MasterPage1.master"Title="首頁"%〉 〈scriptrunat="server"〉 protectedvoidPage_Load (objectsender,EventArgse) { ((ASP.masterpage1_master)Master). SetCurNavItem(0); } 〈/script〉 〈asp:ContentID="content"runat="server" ContentPlaceHolderID="m_content"〉 〈p〉這里是首頁的內(nèi)容〈/p〉 〈/asp:Content〉
效果
可以看到,導(dǎo)航欄的***項突出顯示了。
更好的方法
ASP.masterpage1_master 是強制類型轉(zhuǎn)換,這樣使用起來似乎不是很方便,因為每次使用 Master 的地方都要重復(fù)地寫這些代碼,我們可以利用 MasterType 指令來實現(xiàn)。
〈%@PageLanguage="C#"MasterPageFile=" MasterPage1.master"Title="首頁"%〉 〈%@MasterTypeVirtualPath="MasterPage1.master"%〉 〈scriptrunat="server"〉 protectedvoidPage_Load(objectsender,EventArgse) { Master.SetCurNavItem(0); } 〈/script〉 〈asp:ContentID="content"runat=" server"ContentPlaceHolderID="m_content"〉 〈p〉這里是首頁的內(nèi)容〈/p〉 〈/asp:Content〉
在上一頁已經(jīng)介紹過ASP.NET網(wǎng)頁模板訪問母版資源的兩種方法,其中第二種方法使用簡單快捷,但在某些情況下同樣顯得無能為力。
比如:一個頁面需要三種布局風(fēng)格,這可能就需要三個模板,由訪問者決定使用哪一個模板,也就是說在頁面開發(fā)的時候,還不知道將使用哪一個模板,使用 @ MasterType VirtualPath 也就無法確定 MasterPage 的類型。
我們可以這樣做:
◆建立一個基類。
◆各個模板頁派生自這個基類。
◆內(nèi)容頁通過 MasterPageFile 確定使用哪個模板,通過 @ MasterType TypeName 來使用基類類型處理這些模板的資源。
具體如下(只演示一個模板文件代碼):
基類文件代碼:
usingSystem; usingSystem.Web.UI; namespaceMasterPageNameSpace { publicabstractclassMasterPageClass: MasterPage { publicabstractvoidSetCurNavItem (intitemIndex); } }
注意使用的名稱空間和類及方法的修飾限定符。
模板文件代碼:
〈%@MasterLanguage="C#"Src="m1.cs" Inherits="MasterPageNameSpace.MasterPageClass"%〉 〈!DOCTYPEhtmlPUBLIC"-//W3C// DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd"〉 〈scriptrunat="server"〉 publicoverridevoidSetCurNavItem(intitemIndex) { nav.Items[itemIndex].Attributes.CssStyle.Add ("color","#FF0000"); } 〈/script〉 〈htmlxmlns="http://www.w3.org/1999/xhtml"〉 〈headrunat="server"〉 〈title〉UntitledPage〈/title〉 〈/head〉 〈body〉 〈formid="form1"runat="server"〉 〈div〉 〈asp:ContentPlaceHolderid="m_header" runat="server"〉 〈asp:BulletedListID="nav"runat="server"〉 〈asp:ListItemText="導(dǎo)航一"〉〈/asp:ListItem〉 〈asp:ListItemText="導(dǎo)航二"〉〈/asp:ListItem〉 〈/asp:BulletedList〉 〈/asp:ContentPlaceHolder〉 〈asp:ContentPlaceHolderID="m_content"runat="server"〉 在 〈/asp:ContentPlaceHolder〉 〈asp:ContentPlaceHolderID="m_footer"runat="server"〉 〈p〉版權(quán)所有〈/p〉 〈/asp:ContentPlaceHolder〉 〈/div〉 〈/form〉 〈/body〉 〈/html〉
我們也可以通過 CSC 把基類文件編譯成 DLL 放在 bin 目錄下,或者將 .cs 文件放在 App_Code 目錄下,然后指令中省略 Src。
ASP.NET網(wǎng)頁模板內(nèi)容文件代碼:
〈%@PageLanguage="C#"MasterPageFile=" MasterPage1.master"Title="首頁"%〉 〈%@MasterTypeTypeName=" MasterPageNameSpace.MasterPageClass"%〉 〈scriptrunat="server"〉 protectedvoidPage_Load(objectsender,EventArgse) { Master.SetCurNavItem(0); } 〈/script〉 〈asp:ContentID="content"runat=" server"ContentPlaceHolderID="m_content"〉 〈p〉這里是首頁的內(nèi)容〈/p〉 〈/asp:Content〉
到此,關(guān)于“如何在ASP.NET網(wǎng)頁模版中對內(nèi)容頁訪問母版頁的資源”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
文章名稱:如何在ASP.NET網(wǎng)頁模版中對內(nèi)容頁訪問母版頁的資源
分享地址:http://weahome.cn/article/jjoejp.html