使用 Google 搜尋本站文章:
首頁 | CodeCharge 討論板 | 部落格 | ASP.NET 電子書 | 所有文章 | 相簿 | News | 網站導讀 | 聯絡 Allen | 訂閱 RSS
Microsoft MVP
since 2004
 


如何 runtime 變更網頁要套用的 masterpage

By Allen Kuo, 建立日期:2008/09/05 14:19 ,最後修改日期:2008/09/08 14:18
ASP.NET 2.0 新增了 masterpage 的功能, 在此說明如何runtime 變動要套用的masterpage
    加入書籤: 收進你的MyShare個人書籤

若要變動, 必需要在 Page的Pre_Init 事件,或更早進行變動,而寫法是

this.MasterPageFile="....master"; (請參考 sample code 的 default2.aspx)

 

若網頁有巢狀 masterpage,例如

MasterPageTop.master --> MasterPageChannel1.master --> default3.aspx

而您想 runtime 將 MasterPageTop.master 換成MasterPageTop2.master

可以寫成

this.Master.MasterPageFile = "~/MasterPageTop2.master";(請參考 sample code 的 default3.aspx)

 

 

若網頁有巢狀 masterpage,而且不太確定有多少層例如

MasterPageTop.master --> MasterPageChannel1.master --> MasterPageChannel1_1.master --> default.aspx

而您想 runtime 將 MasterPageTop.master 換成 MasterPageTop2.master,也就是說你的目標是 MasterPageChannel1.master ,想將它的 MasterPageFile 屬性改成 ~/MasterPageTop2.master

那麼您可以用遞迴向上一層層地找, 找到符合條件的 masterpage 時,再去修改它的 MasterPageFile 屬性, 例如可以寫成

Im master = getChannelMaster(); //遞迴地向上一層層找masterpage ,直到找到目標為止
if (master != null)
((MasterPage)master).MasterPageFile = "~/MasterPageTop2.master";

(請參考 sample code 的 default.aspx)

 

  download sample code

Copyright © AllenKuo.com , 2000 - 2008