Доступ к общедоступному методу главной страницы из пользовательского элемента управления / класса / страницы - PullRequest
6 голосов
/ 25 октября 2010

Я должен получить доступ к методу на моей главной странице. У меня есть метка ошибки, которую я хочу обновить, основываясь на сообщениях об ошибках, которые я получаю с моего сайта.

public string ErrorText
{
    get { return this.infoLabel.Text; }
    set { this.infoLabel.Text = value; }
}

Как я могу получить доступ к этому из своего пользовательского элемента управления или классов, которые я настроил?

Ответы [ 2 ]

5 голосов
/ 25 октября 2010

Для доступа к главной странице:

this.Page.Master

тогда вам может потребоваться привести к фактическому типу главной страницы, чтобы вы могли получить свойство ErrorText или заставить вашу главную страницу реализовать интерфейс, содержащий это свойство.

1 голос
/ 25 октября 2010

Страница должна содержать следующую разметку:

<%@ MasterType VirtualPath="~/Site.master" %>

, тогда Page.Master будет иметь не тип MasterPage, а тип вашей главной страницы, то есть:

public partial class MySiteMaster : MasterPage
{
    public string ErrorText { get; set; }
}

Код страницысзади:

this.Master.ErrorText = ...;

Другой способ:

public interface IMyMasterPage
{
    string ErrorText { get; set; }
}

(положить его в App_Code или лучше - в библиотеку классов)

public partial class MySiteMaster : MasterPage, IMyMasterPage { }

Использование:

((IMyMasterPage )this.Page.Master).ErrorText = ...;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...