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

2021-04-13 06:19:07 字數 1277 閱讀 9953

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

左直拳在內容頁裡面,如果想響應位於母版頁的控制項的事件,該怎麼辦呢?

msdn

開宗明義地告訴我們:

對於控制項而言,事件是在本地處理的,即內容頁中的控制項在內容頁中引發事件,母版頁中的控制項在母版頁中引發事件。控制項事件不會從內容頁傳送到母版頁。同樣,也不能在內容頁中處理來自母版頁控制項的事件。

那是否意味著內容頁中不能處理母版頁控制項的事件?如果不行的話,真不方便!

不過我試了一下,發現只要將我們希望執行的函式委託給該控制項的事件就可以。

比如說,在母版頁中有個按扭

<

asp:

button

id="button1"

runat

="server"

text

="button"/>

那麼在內容頁中可以在

page_load

裡委託函式:

protected

void page_load(object sender, eventargs e)

然後將自己希望執行的**放在函式

b1_click

裡:protected

void b1_click(object sender, eventargs e)

執行以後,按下button1,頁面即會顯示

hello world!

如果母版頁中也有該按扭

click

事件:

protected

void button1_click(object sender, eventargs e)

那麼這兩個函式都會執行。順序是先母版頁,後內容頁。

事件本質上是乙個委託。委託這個東西,我的理解是乙個函式的執行器,將函式傳給它(委託給它,+=),就會按照先後順序執行。委託就好比一支手槍,函式就好比子彈。只要子彈尺寸口徑合適(函式的引數、型別符合宣告),不管是中國造的子彈,還是德國造的子彈,都可以打出去。給一發打一發,給兩發打兩發。

另外,訪問

母版頁的控制項,可以通過類似

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

的方式。如果想訪問母版頁的屬性,需要在內容頁加入類似一句:

<%

@mastertype

virtualpath

="~/master/list.master"

%>

然後就可以通過

master.

屬性的方式訪問了。注意前面沒有

page.。

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

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

母版頁訪問內容頁

內容頁訪問母版頁,理所當然,是人都知。但母版頁訪問內容頁呢?用委託。實現 1 母版頁宣告和定義乙個委託 2 內容頁裡將具體實現方法附加到委託上 3 母版頁檢查該委託是否為空,非空的話就執行該委託 母版頁 public delegate void dlgshowcontent string conte...

母版頁的內容頁不顯示內容

問題 母板頁設定好了,可是繼承自它的內容頁卻不顯示 確切的說是只能顯示到div之前的內容 解決辦法 母板頁中把控制項放到了contentplaceholder控制項裡,將其拖到contentplaceholder之外即可。演示 在這裡演示乙個母版頁的 內容頁僅僅只是繼承自它 錯誤 錯誤顯示 正確 正...