在許多情況下,我們需要根據項目的運行情況,在頁面運行時才決定使用哪個母版頁。例如在企業管理系統中,我們要求公司的某個部門需要使用一個母版頁,而其他部門則使用另外一個母版頁。顯然,這時候前面母版頁調用方式是不能夠滿足的,它要求我們必須以編程方式來動態設置母版頁。
其實,通過編程方式來動態設置母版頁非常方便。你只需設置Page.MasterPageFile屬性就可以了。但這一步必須在Page.Init事件階段完成,在這之后,再設置這一屬性會產生一個異常。如下面的代碼所示:
protected void Page_PreInit(object sender, EventArgs e)
{
Page.MasterPageFile = "~/Test.Master";
}
如果你將Page.MasterPageFile屬性設置在Page_Load事件里,頁面將會提示錯誤信息:"The 'MasterPageFile' property can only be set in or before the 'Page_PreInit' event.".因此,你必須將Page.MasterPageFile屬性設置在Page.Init事件里。
在使用以編程方式來動態設置母版頁時,還必須注意如下幾點:
1)確保在Web.config文件中或者內容頁面的@Page指令中沒有引用MasterPageFile的<pages>元素,只有這樣才會得到成功加載的頁面,并且引入了母版頁。
2)確保內容頁面沒有使用MasterType指令來創建對母版頁的強類型引用。
3)確保內容頁面和所設置的的母版頁完全兼容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。