Данные на стороне сервера доступны на стороне клиента - PullRequest
0 голосов
/ 02 ноября 2010

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

Есть ли лучший способ сделать это?

Спасибо за ваше время

Ответы [ 5 ]

2 голосов
/ 02 ноября 2010

Лучший способ сделать это с AJAX. В итоге вам необходимо:

  1. написать серверный скрипт (вероятно, ashx), который возвращает релевантные результаты для выпадающего списка, зависящего от некоторой переменной
  2. используйте JavaScript (или библиотеку, подобную jQuery), чтобы выполнить AJAX-вызов страницы Ashx. Этот вызов должен будет передать определяющую переменную на сервер через POST или GET.
  3. прикрепите этот вызов AJAX к событию изменения в полях выбора, чтобы при их изменении можно было обновлять другие
  4. когда вызов AJAX завершится, вам понадобится функция JavaScript, которая сортирует возвращаемые данные. Эти данные могут быть простым HTML, который добавляется на страницу, или более сложным объектом JSON, который необходимо отформатировать. Выбор за вами. Но это форматирование и ответ должны быть написаны на JavaScript.
1 голос
/ 02 ноября 2010

Это можно сделать с помощью некоторых доступных технологий ASP.Net AJAX. Если вы поместите раскрывающиеся списки в UpdatePanel и установите для них асинхронную обратную передачу, вы можете заставить их обновляться при выделении.

Поскольку обновляется только код внутри UpdatePanel, результаты загружаются намного быстрее.

См. в этой статье , где приведен хороший пример использования панели обновления и нескольких раскрывающихся списков.

0 голосов
/ 03 ноября 2010

AJAX - это путь, на который указывают все остальные, вы можете сэкономить время, используя код, который уже написали другие, например: http://www.codeproject.com/KB/custom-controls/ajaxdropdownlist.aspx

Этот уже довольно старый, но, по крайней мере, может показать вам, что вам нужно.

0 голосов
/ 02 ноября 2010

Я представлю один из возможных сценариев.

  1. Когда ваша страница загружается впервые, вы выводите список вариантов по умолчанию. Это делается с использованием логики на стороне сервера.
  2. Когда пользователь щелкает раскрывающийся список, используя Javascript на стороне клиента, вы рассчитываете, как должны вести себя другие, и соответствующим образом манипулируете ими.
  3. Если для одного из ваших списков требуется новая информация, недоступная на стороне клиента, вы используете AJAX для запроса этой информации на сервере.
  4. (необязательно) вы можете кэшировать новую информацию на стороне клиента, если вы не хотите, чтобы сервер опрашивался каждый раз, когда ваши пользователи щелкают по раскрывающимся спискам.
0 голосов
/ 02 ноября 2010

Поскольку laurencek говорит, что AJAX будет конечным решением для этого. На asp.net есть хороший пример с понятным объяснением, здесь . Небольшое использование веб-службы, которое может вызвать некоторую паузу, но все же хорошее объяснение того, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...