2009-12-24 93 views

回答

13

這是可能的,你就必須重寫你的代碼隱藏類,像這樣的OnPreInit方法...

protected override void OnPreInit(EventArgs e) 
{ 
    Page.MasterPageFile = "~/your/masterpage.master"; 
} 

所以這個綁定到一個點擊,你可以使用一個查詢字符串參數,即

<a href="<%=Request.Url.ToString()%>?masterPage=alternative">Use 
alternative master page</a> 

然後在代碼隱藏

protected override void OnPreInit(EventArgs e) 
{ 
    if(Request["masterPage"] == "alternative") 
    { Page.MasterPageFile = "~/your/alternative/masterpage.master"; } 
} 
2

你可以有一個定期,非服務器<form>,帶有隱藏<input>場。當表格帖子時,您檢查Pre_Init事件中的<input>值,並在那裏更改主頁面。

由於在頁面生命週期中它們的啓動時間太晚,所以不能使用帶有常規按鈕事件的服務器端表單。

0

我最近做了這個,我根據正在渲染的頁面在主頁上更改圖像。

1)I引用的控制(imgPageSpecificTextImg在母版)

2)變更的代碼被指向的URL。

  System.Web.UI.WebControls.Image imgText = (System.Web.UI.WebControls.Image)Master.FindControl("imgPageSpecificTextImg"); 
      imgText.ImageUrl = "images/banner.jpg";