2010-05-24 8 views
6

Мы создали главную страницу, которая наследуется от класса asp.net Master. У нас также есть элементы управления ui, которые наследуют стандартный класс управления asp.net ui. Наша главная страница имеет переменную открытого участника. Нам нужно иметь доступ к этой переменной-члену из элементов управления ui, которые мы используем. Однако мы не можем это понять? Является ли наша архитектура неправильной? Или сама идея - пользовательский контроль получает доступ к переменным главной страницы?Получение доступа к пользовательской главной странице из пользовательского элемента управления

ответ

6

Вообще говоря, это, вероятно, не большой шаблон дизайна. Однако вы должны сделать что-то вроде этого:

MyMasterType myMaster = this.Page.Master as MyMasterType; 
if (myMaster != null) 
{ 
    myMaster.PublicProperty = value; 
} 
+0

Yeh это то, что мы собираемся в настоящее время, но это просто неправильно. Поэтому мы собираемся изменить элемент управления, чтобы иметь общедоступную собственность. Содержащая страница будет вводить значение в это свойство при загрузке. – Bernard

+0

Есть ли причина, по которой введение значения лучше, чем захват его из пользовательского элемента управления? Я уже впрыскивал и искал способ захватить его вместо этого, но с удовольствием передумал бы, если бы были веские причины. –

+0

Существует несколько причин: 1) Использование свойства на главной странице позволяет вам установить значение в других контекстах (будущие потребности) и 2) Архитектура больше не плотно связана. Если главная страница захватывает данные, тогда главная страница зависит от того, где находится пользовательский элемент управления. – etc

Смежные вопросы