我正在尋找一種方式(最好)從在使用母版頁的內容頁中找到的用戶控件強類型母版頁。如何從用戶控件引用主頁面?
可悲的是,你不能在用戶控制使用:
<%@ MasterType VirtualPath="~/Masters/Whatever.master" %>
我試圖從用戶控件訪問母版頁的屬性,寧可不要從傳遞特性由於多個內容頁面使用相同的用戶控件,主頁面到用戶控件的內容頁面。一個變化,一個地方不變。
我正在尋找一種方式(最好)從在使用母版頁的內容頁中找到的用戶控件強類型母版頁。如何從用戶控件引用主頁面?
可悲的是,你不能在用戶控制使用:
<%@ MasterType VirtualPath="~/Masters/Whatever.master" %>
我試圖從用戶控件訪問母版頁的屬性,寧可不要從傳遞特性由於多個內容頁面使用相同的用戶控件,主頁面到用戶控件的內容頁面。一個變化,一個地方不變。
嘗試Page.Master
。
Whatever whatev = (Whatever)Page.Master;
你必須確保你正確using
語句添加到您的文件的頂部,或者有資格的母版頁式直列。
一個潛在的問題是,如果此控件由主頁面不是相同類型的其他頁面使用。這隻會在運行時被捕獲。
你試過在usercontrol上的Page.FindControl(「name」)嗎?
實現它的最好方法是找到實際上是建立一個基於UserControl的自定義類,給它一個帶get訪問器的主屬性,通過this.Page.Parent直到它停止遇到主頁面(如果您正在嵌套,則不需要執行此步驟),然後將該Web控件作爲要使用的母版頁的類型返回。然後,當您添加一個新的用戶控件時,將它的基類更改爲您的自定義類的名稱。 .Master屬性將作爲您希望使用的主頁面訪問並正確轉換。
如何在名爲「Master」的用戶控件中添加屬性,然後在聲明控件時傳遞引用? – Kevin 2009-01-06 14:26:22
我試圖避免通過控件傳遞任何引用,但很好的建議。 – 2009-01-06 14:33:20