巢狀母版頁

2022-02-15 09:34:07 字數 2500 閱讀 8058

寫在前面的話:

對於乙個專案來說,我們可能會用到許多的母版頁+內容頁的組合.那麼當我們使用到多個母版頁時,我們可能會遇到這樣的問題.在不同的母版頁內載入相同的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" "">

">

注意:

1.css檔案的路徑是相對於master頁的.

sub1.master的**

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">

webform1.aspx內容頁的**:

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中,**如下:

protected

void 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。一般說來,在母版頁上使用元素...