2014-09-22 113 views
1

我有一個父母版(Main.master)和一個孩子NestedMasterPage分配母版頁嵌套母版頁的代碼隱藏

在NestedMasterPage我已經分配的MasterPageFile屬性在HTML代碼中像下面

<%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="~/Themes/ABC/Main.Master" CodeBehind="User_Main.master.cs" Inherits="ProjectABC.UI.Pages.MasterPages.User_Main" %> 

現在在NestedMasterPage後面的代碼中,我正在嘗試將MasterPageFile屬性更改爲其他MasterPage,但不工作。

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    MasterPageFile = "~/Themes/XYZ/Main.Master"; 
} 

沒有代碼錯誤,只是HTML分配的路徑正在工作,而不是後面的代碼。我錯過了什麼?

回答

0

此問題背後的原因是主頁面文件的PreInit()事件在asp.net頁面生命週期中從不會被調用。您可以看到完整的主頁和事件頁面事件集here

您可以設置一個孩子的母版頁的母版頁的內容頁面的下列方式PreInit()事件:

public partial class TestMaster : System.Web.UI.Page 
{ 
    protected void Page_PreInit(object sender, EventArgs e) 
    { 
     //Set the master page file of the current pages master. 
     this.Master.MasterPageFile = "~/NewMasterPage.master"; 
    } 
} 
+0

非常感謝。我幾乎沒有在解決這個問題上瘋狂。你的幫助工作。非常感謝 – 2014-09-28 21:33:02

+0

請標記爲答案,如果它幫助你。謝謝! – 2014-09-29 09:17:55