2012-08-04 43 views
3

我知道下面將在ASP.NET VB.NET應用編程設置母版頁:設置母版頁編程的整個應用程序

Me.MasterPageFile = "~/masterPage.master" 

是否有可能以編程方式設置將適用該母版頁文件跨應用程序的所有頁面,而不必爲每個單獨頁面設置它?我希望能夠從數據庫中檢索此值以設置要使用的母版頁文件。

如果沒有,是否可以在web.config中設置多個主頁面文件?

回答

1

這就是你可以用ASP.NET C#做的事情。我沒有用VB測試它。從自己的網頁類的每一頁

public class MyPage : System.Web.UI.Page 
{ 
    void Page_PreInit(Object sender, EventArgs e) 
    { 
     this.MasterPageFile = "MasterPage.master"; 
    } 
} 

繼承您創建:

聲明自己的頁面類和設置母版頁有您的所有網頁

public partial class _Default : MyPage 
{ 
} 
1

您可以設置此在您的web.config文件中:

<pages masterPageFile="~/Template.master" /> 
0

您可以更改web.config中頁面的設置。此代碼將更改所有頁面的母版頁。

var configuration = WebConfigurationManager.OpenWebConfiguration("~"); 
    SystemWebSectionGroup section=new SystemWebSectionGroup(); 
    section.Pages.MasterPageFile = "~/YourMasterPage.master";//Here too. 
    configuration.Save(); 

只要記住,在更改web.config中重新啓動網絡服務器和緩存無效。所以不要經常這樣做。

我建議您單獨爲PreInit事件中的頁面執行此操作。我發佈了這段代碼,告訴您可以一次更改所有頁面,但會產生後果。

相關問題