Хороший способ поддерживать состояния ASP.NET Panel? - PullRequest
1 голос
/ 20 ноября 2008

Я создаю веб-форму, состоящую из нескольких частей, в ASP.NET, которая использует панели для различных шагов, делая видимой только панель для текущего шага. На шаге 1 у меня есть выпадающий список, который использует функцию Javascript для перенастройки некоторых полей в той же панели через «onchange». Очевидно, что, поскольку клиентский сценарий влияет только на DOM, когда я перехожу к шагу 2 и затем возвращаюсь к шагу 1, поля на шаге 1 возвращаются к своей первоначальной конфигурации, даже если выбран тот же выпадающий выбор.

Каков хороший метод для сохранения визуального состояния панелей между шагами? Я подумывал вызвать функцию onchange раскрывающегося списка при загрузке страницы, но это казалось неуклюжим. Спасибо!

-

Спасибо за быстрые ответы - думаю, я опробую Wizard, но решение AJAX также звучит весело.

Ответы [ 3 ]

1 голос
/ 20 ноября 2008

Я предлагаю вам использовать элемент управления MultiView, который, скажем, семантически более уместен. И затем сохраните эти данные во ViewState. Я написал что-то подобное, и это потрясающе.

1 голос
/ 20 ноября 2008

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

Попробуйте показать / скрыть панели с помощью JavaScript, а не публиковать их, если это возможно. Если нет, используйте ajax для обновления значений на стороне сервера, как только они будут выбраны, а не при нажатии кнопки «следующий / предыдущий».

В противном случае вы можете использовать что-то вроде ASP.Net Ajax Toolkit Tabs , чтобы помочь с переходами.

Надеюсь, это поможет!

1 голос
/ 20 ноября 2008

Для этого вы можете рассмотреть элемент управления ASP.Net Wizard - он автоматизирует многое из того, что вы пытаетесь сделать.

...