Автозаполнение JQuery с веб-сервисом ASp.Net - PullRequest
0 голосов
/ 11 октября 2011

Я работаю над автозаполнением JQuery с помощью веб-службы ASP.Net. У меня веб-сервис ASP.Net, вызываемый в JQuery (JSON), выпадающий как

 $(document).ready(function () {
    $("#txtTest").autocomplete({ 
         source: function (request, response) {  
             $.ajax({  
                 type: "POST",  
                 contentType: "application/json; charset=utf-8", 
                 url: "Webservice.asmx/GetNames",
                 data: "{'prefix':'" + request.term + "'}",  
                 dataType: "json",  
                 async: true,  
                 success: function (data){  
                    response($.map(data, function(item)
                    { return item ; }));  
                },  
                error: function (result) {  
                   alert("Due to unexpected errors we were unable to load data");  
                }  
             });
         },  
         minLength:2
     });
 });

И я получаю вывод при автоматическом завершении как

 {"First":"Steve","Second":"AK"}
 {"First":"Evet","Second":"EV"}
 {"First":"Stevens","Second":"SV"}

Как отобразить только «Первые» элементы (например, Стив, Эвет, Стивенс) в качестве результата автоматического завершения выпадающего меню?

Пожалуйста, помогите мне!

Ответы [ 3 ]

0 голосов
/ 11 октября 2011

это, вероятно, сделает свое дело

   success: function (data)
    {  
        response($.map(data, function (item)
         {
             return { label: item.First, value: item.First}
         }))
    });
0 голосов
/ 12 октября 2011

Посмотрите на мой ответ на этот вопрос: Jquery Autocomplete 2 Fields

, но используйте ваши значения вместо "A" и "B" в полях.

Кроме того, вам (может) понадобится конвертер для обработки данных asp.net:

$.ajax({
    url: "Webservice.asmx/GetNames",
    dataType: "jsond",
    type: "POST",
    contentType: "application/json",
    converters: {
        "json jsond": function(msg)
        {
            return msg.hasOwnProperty('d') ? msg.d : msg;
        }
    },
...
0 голосов
/ 11 октября 2011

Вам нужно посмотреть на параметр formatItem в методе автозаполнения - попробуйте это

formatItem: function(row, i, n) {
      return row.First;
  }
...