HTML.Dropdownlist autocomplete - PullRequest
       7

HTML.Dropdownlist autocomplete

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

Есть ли атрибут html, который я могу установить так, чтобы мой html.dropdownlist вел себя как комбобокс, чтобы пользователь мог набирать текст и иметь автозаполнение или предлагать / предлагать-добавлять?Мне бы очень хотелось, чтобы мне не приходилось использовать telerik и копировать мой код.

Не уверен, что его релевантность, но я использую C #, asp.net mvc 2

Ответы [ 2 ]

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

Я бы порекомендовал использовать плагин jQuery для автозаполнения .

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

$('#title').autocomplete('ws/autocomplete.php',
{
  width: 400,
  selectFirst: false,
  matchContains: true,
  cacheLength: 1,
  extraParams: {t: "jobtitle"}
});

Единственное ограничение заключается в том, что ваш веб-сервис должен возвращать данные JSON.

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

Я рекомендую использовать javascript и, возможно, ajax в обычном текстовом поле, в зависимости от того, что вы хотите автоматически заполнять.

Используя JQuery, это будет примерно так:

$('#textboxID').bind('keydown', function(e)
{
     var data = $('#textboxID').Val;
     $.ajax({
          url: 'some/webservice', //If you're using MVC then your webservice url will be an action method url that returns the results you want.
          data: { userinput: data },
          type: "post",
          success: function (response)
          {
               //display context menu with suggestions from response
          }
      });
});

Если вы неЕсли вы не хотите, чтобы запрос AJAX отправлялся для каждого события нажатия клавиши, то вы могли бы заставить первое нажатие клавиши даже запускать таймер js, который проверяет каждые несколько секунд, изменилось ли значение текстового поля, если это так, то сделайте новый вызов ajax, чтобы обновить выпадающий список предложений.Очевидно, остановите таймер интервала onblur, когда текстовое поле теряет фокус.

...