2009-05-24 80 views
1

我一直在閱讀其他問題處理母版頁,但我沒有看到任何相當有我正在尋找的答案,所以...從一個單獨的類訪問母版頁控制

我有一個母版頁。我在母版頁上有一個控件(控件A)。我有一個特定的內容頁面,我想禁用(控制A)和啓用(控制B)。

而不是在內容頁面上這樣做,我想在我在網站中使用的靜態工具類中執行此操作。原因是我們在網站上有4個不同的部分使用4個不同的母版頁。我試圖創建一個靜態方法,它接收主頁面和控件的名稱,然後交換控件。

我不能完全弄清楚如何從一個單獨的類引用母版頁。

回答

2

我不認爲你將能夠做到這一點......想必你想要的東西,像

public static void DoWork (string masterPageName) 
{ 
    //Code to find instance of masterpage... 
} 

你將不能夠做到這一點從靜態類,因爲沒有實例。您需要在外面找到它並將實際的母版頁對象傳遞給您的靜態方法。

我真的不明白爲什麼有必要在實用工具類中這樣做,雖然如果它是特定於您的內容頁面之一。如果它對於許多內容頁面是通用的,那麼請考慮創建一個basePage類,以便您的內容頁面可以擴展。

public class BasePage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(this.Master != null) 
      if(this.Master.FindControl("Control A") != null) 
       //Disable Control A 
       //Enabled Control B 
    } 
}