Сохранить состояние контролов при перезагрузке

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

porvoo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.04.2007 (Вс) 11:43

Сохранить состояние контролов при перезагрузке

Сообщение porvoo » 01.04.2007 (Вс) 12:12

У меня добавляются контролы автоматически, но после перезагрузки скидываются и исчезают. Что делать надо, чтобы они оставались после перезагрузки?

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 10.04.2007 (Вт) 15:21

Все очень просто, чтобы значения контролов сохранялись между постбеками и не "скидывались", нужно, чтобы при каждой загрузке страницы дерево элементов управления сохранялось. Т.е. добавлять элементы управления нужно в Page_Load. Например, в зависимости от параметров URL или значений других элементов управления, при перезагрузке использовать условные операторы и добавлять контролы.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

porvoo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 01.04.2007 (Вс) 11:43

Сообщение porvoo » 13.04.2007 (Пт) 23:10

То есть надо

if(param1){ loadControls(1); } else { loadControls(0); }

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

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 14.04.2007 (Сб) 0:23

Параметром может быть все, что угодно - начиная от состояния элемента управления до GET/POST параметров.
Элементы управления удобно использовать, когда динамическое добавление происходит в Page_Load, поскольку тогда состояние будет восстановлено автоматически.
Hidden поля имеет смысл использовать когда одни динамически добавленные контролы определяют поведение других, при этом "исчезая". Но зачастую такое поведение можно упростить разделив логику на две страницы или использовав AJAX (UpdatePanel) для обновления данных.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList