內容頁響應母版頁控制項的事件
左直拳在內容頁裡面,如果想響應位於母版頁的控制項的事件,該怎麼辦呢?
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之外即可。演示 在這裡演示乙個母版頁的 內容頁僅僅只是繼承自它 錯誤 錯誤顯示 正確 正...