Как я могу управлять страницей asp.net в разных штатах, используя enum

Все

Я столкнулся с проблемой жизненного цикла страницы ASP.NET. В настоящее время у меня есть пользовательский элемент управления, встроенный в мою страницу. Теперь, в зависимости от параметров, выбранных из списка пунктов меню, страница может находиться в одном из трех состояний, представленных в элементе управления PageStates Enum. Страница выбора пункта меню просто обновляет свойство, отображаемое из элемента управления.

  • Начальное состояние (ничего не конгигируемо)
  • Редактирование (использует раскрывающийся список и делает вид сетки внутри него видимым)
  • Добавление (это использует другой раскрывающийся список и делает тот же самый вид сетки, но с другими свойствами видимым)

ПРОБЛЕМЫ

  1. Страница перейдет в правильное «состояние», только если пункт меню выбран дважды
  2. Элементы управления отображаются в виде сетки, когда их не должно быть
  3. Страница "состояние", кажется, отстает от одного состояния

Я думаю, что основная проблема, с которой я столкнулся, заключается в том, что в виде сетки отображаются флажки, если страница находится в режиме добавления, однако вам потребуется дважды выбрать пункт меню «Добавление», чтобы перевести его в это состояние, и я считаю, что это потому, что я я устанавливаю состояние страницы, когда пункт меню выбран, однако строки сетки уже созданы в этот момент (я динамически создаю флажки в представлении сетки в событии RowCreated

У кого-нибудь есть какие-либо предложения относительно того, как мне обойти эту проблему? Может ли эта реализация когда-либо работать?

13.10.2009 12:19:20
Я действительно думаю, что вы должны поделиться своими кодами с нами здесь. У меня хорошее чувство, что это может быть недосмотр, который можно исправить довольно легко.
o.k.w 13.10.2009 14:39:44
2 ОТВЕТА

Если ваш элемент управления вызывает вещи, которые изменяют состояние, и вы перерисовываете событие page_load, то ваше состояние не будет обновлено, пока не сработает событие элемента управления. Чтобы переместить конструкцию страницы в page_prerender или подобное событие в жизненном цикле.

Если вам нужна дополнительная информация о том, в каких событиях страницы заказа запускаются, добавьте Trace = "true" в директиву страницы на странице aspx.

1
13.10.2009 12:26:00
РЕШЕНИЕ

Мне удалось решить это следующим образом.

Основная проблема заключалась в том, что я создавал свои флажки для события RoWCreated, которое происходило до обновления состояния страницы.

Поэтому я создал свой собственный подпункт createCheckBoxes, который вызывался при правильном изменении состояния страницы.

Это решило мою проблему с минимальными потерями производительности из моих первоначальных исследований

0
14.10.2009 08:04:01