Доступ к главной странице Control из отдельного класса - PullRequest
1 голос
/ 24 мая 2009

Я читал другие вопросы, связанные с мастер-страницами, но я не видел ни одного, который вполне имел бы ответ, который я ищу, поэтому ...

У меня есть главная страница. У меня есть элемент управления (элемент управления A) на главной странице. У меня есть определенная страница содержимого, которую я хочу отключить (элемент управления A) и включить (элемент управления B).

Вместо того, чтобы делать это на странице содержимого, я хотел бы сделать это в статическом служебном классе, который я использую на сайте. Причина этого в том, что у нас есть 4 разных раздела на сайте, которые используют 4 разных главных страницы. Я пытаюсь создать статический метод, который получает имя главной страницы и элемент управления, а затем заменяет элементы управления.

Я не могу понять, как ссылаться на главную страницу из отдельного класса.

1 Ответ

2 голосов
/ 24 мая 2009

Я не думаю, что вы сможете это сделать ... возможно, вы хотите что-то вроде

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...