Masterpage + updatepanel на дочерней странице

Итак, у меня есть мастер-страница с логином, которая находится на панели обновлений. У меня есть дочерняя страница с буквальным элементом управления, которая должна обновляться при обновлении входа в систему. Чего он не делает, так это перезагружает метод, который я использую для генерации контента для этого литерала, когда он отправляет обратно. Я попытался вызвать метод на дочерней странице с главной страницы после того, как вы нажмете «Войти», но я получаю ошибку, что не удается найти буквальный элемент управления (поскольку он существует на дочерней странице, а не на главной странице). Как бы я сослался на этот элемент управления на главной странице, чтобы передать его моему методу?

13.10.2009 13:28:42
2 ОТВЕТА

В статье ниже показано, как дерево элементов управления работает с MasterPages и как ссылаться на разные элементы управления на разных уровнях дерева элементов управления.

ASP.Net 2.0 - главные страницы: советы, хитрости и ловушки

0
13.10.2009 14:01:23
Ну, ничего из этого не сработало, все еще не мог найти контроль. Проблема больше похожа на перезагрузку панели обновления дочерней страницы, она не выполняет полную обратную передачу для обновления данных, пока я не нажму перезагрузить. Он проверяет, установлена ​​ли переменная сеанса после входа в систему. Возможно, переменная сеанса устанавливается после запуска метода, управляющего содержимым дочерней страницы?
ATMILO 13.10.2009 14:57:02

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

В коде вашей главной страницы вы создаете функцию, которая изменяет значение метки.

Включите панель обновления на главной странице для метки, которая вызывается событием с измененной текстовой информацией и т. Д.

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

C #:

((MyMaster)this.Page.Master).ShowMessage(text);

VB.NET:

DirectCast(Me.Page.Master, MyMaster).ShowMessage(text)

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

Я собираюсь попробовать это сейчас для себя, пожелай мне удачи. : D

0
26.10.2012 05:44:47