巢狀母版頁中的控制項訪問

2021-08-22 10:46:31 字數 1652 閱讀 6158

巢狀母版頁中的控制項訪問

左直拳巢狀母版頁中的控制項訪問很彆扭。

如果乙個內容頁對應乙個沒有巢狀的母版頁,訪問這個母版頁上的控制項眾所周知:類似(button)page.master.findcontrol("button1")

可是這個母版頁如果又巢狀在另乙個母版頁裡面,上述語句包你什麼東西都訪問不到。

假設頂層母版頁master0.master有

<

asp:

contentplaceholder

id="submaster"

runat

="server">

asp:

contentplaceholder

>

子母版頁master1.master有

<

asp:

content

id="submasterlist"

contentplaceholderid

="submaster"

runat

="server">

<

asp:

contentplaceholder

id="main"

runat

="server">

asp:

contentplaceholder

>

<

asp:

button

id="button1"

runat

="server"

text

="button"/>

asp:

content

>

現在內容頁content.aspx結合子母版頁master1.master,有

<

asp:

content

id="content1"

contentplaceholderid

="main"

runat

="server">

asp:

content

>

這時不論是

(button)page.master.findcontrol("button1")

還是contentplaceholder

direcmaster = (contentplaceholder)page.master.findcontrol("submaster");

button

b1 = (button)direcmaster.findcontrol("button1");

都無法訪問到這個button。

我折騰來折騰去,最後才知道正確的寫法是:

contentplaceholder

direcmaster = (contentplaceholder)page.

master.master.

findcontrol("submaster");

button

b1 = (button)direcmaster.findcontrol("button1");

就是說,如果母版頁巢狀多少層,master就應該寫多少個。

這樣子的話,我認為如果想訪問母版頁的控制項,還不如通過在母版頁設定屬性來間接訪問該控制項。一方面,訪問方便;另一方面,可遮蔽細節,內容頁根本不用關心所用的母版頁到底巢狀了多少層。

巢狀母版頁中的控制項訪問

巢狀母版頁中的控制項訪問 左直拳巢狀母版頁中的控制項訪問很彆扭。如果乙個內容頁對應乙個沒有巢狀的母版頁,訪問這個母版頁上的控制項眾所周知 類似 button page.master.findcontrol button1 可是這個母版頁如果又巢狀在另乙個母版頁裡面,上述語句包你什麼東西都訪問不到。假...

巢狀母版頁

寫在前面的話 對於乙個專案來說,我們可能會用到許多的母版頁 內容頁的組合.那麼當我們使用到多個母版頁時,我們可能會遇到這樣的問題.在不同的母版頁內載入相同的js和css內容.如果乙個js或css檔案在專案中的位置發生了變化,我們就要修改多個母版頁的js和css的link.對此,我們或許可以使用巢狀母...

訪問母版頁控制項及屬性

1 通過findcontrol找控制項id 需要在此事件中 因為page load中時是先內容頁載入然後才是母版頁載入 protected void page loadcomplete object sender,eventargs e 2 通過強引用 page language c masterp...