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

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


person Community    schedule 13.10.2009    source источник


Ответы (2)


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

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

person rick schott    schedule 13.10.2009
comment
Ну, ничего из этого не сработало, все равно не удалось найти контроль. Проблемы больше похожи на перезагрузку дочерней панели обновления, она не выполняет полную обратную передачу для обновления данных, если я не нажму перезагрузку. Он проверяет наличие установленной переменной сеанса после входа в систему. Возможно, переменная сеанса устанавливается после запуска метода, управляющего содержимым дочерней страницы? - person ; 13.10.2009

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

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

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

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

C #:

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

VB.NET:

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

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

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

person Yaaseen    schedule 12.04.2012