从单独的类访问主页面控件

时间:2009-05-24 14:34:17

标签: c# master-pages

我一直在阅读有关母版页的其他问题,但我没有看到任何我想要的答案,所以......

我有一个母版页。我在母版页上有一个控件(控件A)。我有一个我要禁用的内容页面(控制A)和启用(控制B)。

我想在内容页面上执行此操作,而不是在网站中使用的静态实用程序类中执行此操作。这样做的原因是我们在网站上有4个不同的部分,使用4个不同的母版页。我正在尝试创建一个静态方法,接收主页面和控件的名称,然后交换控件。

我无法弄清楚如何从单独的类中引用母版页。

1 个答案:

答案 0 :(得分: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
    }
}