寫在前面的話:
對於乙個專案來說,我們可能會用到許多的母版頁+內容頁的組合.那麼當我們使用到多個母版頁時,我們可能會遇到這樣的問題.在不同的母版頁內載入相同的js和css內容.例子介紹:如果乙個js或css檔案在專案中的位置發生了變化,我們就要修改多個母版頁的js和css的link.
對此,我們或許可以使用巢狀母版頁的形式,來使我們盡量只改變一處的link,就可以使所有頁面的js或css得到更新.
下面,我們舉例說明.
在例子中,我們有以下內容:例子:1.乙個main.master頁,在這個頁面中,有乙個id為btn_main的button和乙個div
2.乙個sub1.master頁,在這個頁面中,有乙個id為btn_sub1的button和乙個div
3.乙個webform1.aspx內容頁,有乙個id為btn_page的button和乙個div
4.乙個1.js檔案,js檔案中有乙個myalert()的函式
5.乙個1.css檔案,css檔案中有.myback樣式
文件結構如下:
例子展示內容:
1.通過main.master如何引用公共的js和css檔案
2.通過webform1.aspx頁,如何訪問main.master的button、訪問sub1.master的button
main.master的**:
-//w3c//dtd xhtml 1.0 transitional//en" "">">
注意:sub1.master的**1.css檔案的路徑是相對於master頁的.
webform1.aspx內容頁的**:codebehind="sub1.master.cs" inherits="webmastertest.masterpages.sub1" %>content1" contentplaceholderid="head" runat="server">
head" runat="server">
content2" contentplaceholderid="contentplaceholder1" runat="server">
btn_sub" runat="server" text="我是子母版頁上的按鈕" onclientclick="myalert('我是子母版頁上的按鈕');" />
class='myback'>子模板頁
contentplaceholder11" runat="server">
contentplaceholder12" runat="server">
codebehind="webform1.aspx.cs" inherits="webmastertest.pages.webform1" %>content1" contentplaceholderid="head" runat="server">
content2" contentplaceholderid="contentplaceholder11" runat="server">
content3" contentplaceholderid="contentplaceholder12" runat="server">
btn_page" runat="server" text="這是內容頁上的按鈕" onclientclick="myalert('我是內容頁上的按鈕');" />
class='myback'>內容頁
此時,如果js或css的檔案路徑發生了變化,我們也只需變動main.master頁面中的link路徑即可.同時.我們在sub1.master頁中也放置了id為head的contentplaceholder元素,這樣,在webform1.aspx頁中,使用者也可以自行新增需要的js檔案或函式.我們可以看到,在這3個頁面上的div中,我們均可以引用到class為myback的css類.
那麼我們如何在webform1.aspx頁訪問main.master和sub1.master頁中的button呢.在webform1.aspx.cs中,**如下:
protectedvoid page_load(object sender, eventargs e)
如此,我們就實現了在內容頁訪問母版頁的內容.
巢狀母版頁中的控制項訪問
巢狀母版頁中的控制項訪問 左直拳巢狀母版頁中的控制項訪問很彆扭。如果乙個內容頁對應乙個沒有巢狀的母版頁,訪問這個母版頁上的控制項眾所周知 類似 button page.master.findcontrol button1 可是這個母版頁如果又巢狀在另乙個母版頁裡面,上述語句包你什麼東西都訪問不到。假...
巢狀母版頁中的控制項訪問
巢狀母版頁中的控制項訪問 左直拳巢狀母版頁中的控制項訪問很彆扭。如果乙個內容頁對應乙個沒有巢狀的母版頁,訪問這個母版頁上的控制項眾所周知 類似 button page.master.findcontrol button1 可是這個母版頁如果又巢狀在另乙個母版頁裡面,上述語句包你什麼東西都訪問不到。假...
子目錄下的母版頁 巢狀目錄外的母版頁的問題
msdn上的解釋 asp.net 無法修改不是伺服器控制項的元素上的 url。例如,如果在母版頁上使用乙個 img 元素並將其 src 屬性設定為乙個 url,則 asp.net 不會修改該 url。在這種情況下,url 會在內容頁的上下文中進行解析並建立相應的 url。一般說來,在母版頁上使用元素...