значение настройки в MasterPage из UserControl - PullRequest
2 голосов
/ 17 февраля 2011

У меня следующая ситуация:

Мастер-страница MyMaster.Master

Страница содержимого Content.aspx

A UserControl MyUserControl.ascx

MyUserControl.ascx используется в Content.aspx и добавляется программно. На странице содержимого используется MyMaster.Master

MyMaster.Master имеет переменную, к которой я могу получить доступ из Content.aspx, так как у меня установлена ​​директива @MasterType. Я хочу сделать следующее:

1) Установите значение в MyUserControl.ascx

2) Значение доступа из Content.aspx

3) Установить значение в MyMaster.Master

Шаг 2 реализован в PageLoad content.aspx следующим образом:

Control ucControl= LoadControl("/UserControls/MyUserControl.ascx");
UserControls_MyUserControl myUC = ucControl as UserControls_MyUserControl;
//Do some caching stuff here
if (myUC != null)
    myUC.PreRender += new EventHandler(myUC_PreRender);

Обработчик PreRender просто устанавливает значение в MyMaster.Master в значение true. В MyMaster.Master я проверяю это значение в PageLoad и пытаюсь отобразить что-то, если оно истинно. Это не работает.

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

Любая помощь высоко ценится.

Спасибо

1 Ответ

1 голос
/ 17 февраля 2011

Просто событие PreRender происходит после события Load. Вы должны проверить переменную в событии, которое происходит после того, где вы установили переменную.

Порядок событий в цикле страниц можно посмотреть здесь: Обзор жизненного цикла страницы ASP.NET

...