Используете JSON или метод обратной передачи?

Мне нужно разработать страницу с 2 выпадающими списками.

Параметры выпадающего списка 2 основаны на выборе выпадающего списка 1.

У меня есть 2 способа изменить выпадающий список 2. Что вы выберете?

1: обратная передача, когда пользователи выбирают раскрывающийся список 1 и изменяют раскрывающийся список 2.
Плюсы:
Можно использовать функцию обратной передачи, можно использовать валидатор asp.net
Минусы:
Необходимость связи с сервером (больше трафика )
Пользователи увидят загрузку страницы в строке состояния.

2:
Получите все данные (не очень много данных) в объекте JSON при загрузке страницы и измените раскрывающийся список 2 с помощью javascript.
Плюсы:
Не нужно связываться с сервером (меньше трафика )
Минусы:
Невозможно использовать функцию обратной передачи и валидатор, а написать валидацию сервера сложнее.

Кроме того, я обычно пишу объект JSON на страницу следующим образом:

var locations = <asp:Literal runat="server" id="litLocation" text="[]" />

А затем установите «litLocation» в page_load после обработки данных datacontractjsonserializer. Вы делаете это таким же образом?


person Billy    schedule 25.08.2009    source источник


Ответы (2)


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

Взгляните на подключаемый модуль selectChain для jQuery (демо и т. д. здесь).

person staterium    schedule 25.08.2009

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

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

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

Таким образом, нет смысла беспокоиться о проверке, пока форма не будет фактически отправлена.

person James Black    schedule 25.08.2009