強型別引用母版頁子控制項

2021-04-13 22:16:21 字數 1028 閱讀 6593

程式**

this.master.findcontrol("sidebarbox") as contentplaceholder

這樣做的原理大概就是通過在母版頁內查詢控制項id,然後通過反射進行呼叫的。反射本身就是極其影響效率的一種方式,特別是在頁面訪問量特別大的時候,不做快取處理,那麼對於伺服器來說是一場噩夢。雖然還有生成靜態頁面的方法,但是現在談的是如何使用強型別引用母版頁子控制項。

於是開始做實驗,首先在母版頁宣告:

程式**

public static contentplaceholder sidebarbox;

然後在protected void page_load(object sender, eventargs e)裡面將頁面的contentplaceholder引用給sidebarbox。結果執行出錯,沒有給物件賦值。

仔細想了一下,估計是子頁的page_load比母版頁的page_load要先處理,所以導致為空。看了一下msdn,確實是這樣的,頁面的載入順序如下:

知道這些問題就好解決了,將母版頁的page_load放到page_init裡面去:

程式**

protected void page_init(object sender, eventargs e)

然後在子頁這樣呼叫:

程式**

using system;

using yeeoh.view.controls.frontend;

public partial class error : system.web.ui.page

} 呵呵,一切問題都解決了,然後發現在母版頁中的contentplaceholder可以進行巢狀,你可以用這樣的方法隨便進行覆蓋或其他操作。

在上海開心的日子就要結束了,這一年的旅行讓我大開眼界,結識了不少的朋友,個個都十分的優秀。甚至於我已經習慣於和他們相處,並產生留在這裡的想法。不過現實卻是有太多的事情需要我去做,放棄在上海安逸穩定的生活,實在是迫不得已。

希望在接下來創業的日子裡面,我還會有時間,有心情,寫這些很無趣的東西,呵呵,一切都會更好。

訪問母版頁控制項及屬性

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

內容頁響應母版頁控制項的事件

內容頁響應母版頁控制項的事件 左直拳在內容頁裡面,如果想響應位於母版頁的控制項的事件,該怎麼辦呢?msdn 開宗明義地告訴我們 對於控制項而言,事件是在本地處理的,即內容頁中的控制項在內容頁中引發事件,母版頁中的控制項在母版頁中引發事件。控制項事件不會從內容頁傳送到母版頁。同樣,也不能在內容頁中處理...

內容頁響應母版頁控制項的事件

內容頁響應母版頁控制項的事件 左直拳在內容頁裡面,如果想響應位於母版頁的控制項的事件,該怎麼辦呢?msdn開宗明義地告訴我們 對於控制項而言,事件是在本地處理的,即內容頁中的控制項在內容頁中引發事件,母版頁中的控制項在母版頁中引發事件。控制項事件不會從內容頁傳送到母版頁。同樣,也不能在內容頁中處理來...