2014-12-06 3 views
0

У меня есть веб-служба, которая возвращает список строк. Я пытаюсь прокормить это как источник данных для моего auto suggesttextbox. вот что мой вебсервис возвращаетТекстовое поле Autocomplete с исходным кодом xml

<ArrayOfString> 
    <string>Air Pollutants</string> 
    <string>Air Facilities</string> 
    <string>Air Emissions</string> 
    <string>Air Pollution</string> 
    <string>Air Quality Monitoring</string> 
    <string>Air Piracy</string> 
    </ArrayOfString> 

это мой JQuery с AJAX.

$(document).ready(function() { 
    $('#<%=txt_search_extantdata.ClientID%>').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ type: 'POST', 
       url: "/_layouts/Extantlibrarywebservice/getdata.asmx/GetSearchData", 
       data: { 'src': $("#<%=txt_search_extantdata.ClientID%>").val() }, 

            dataType: "xml", 
            success: function (xmlResponse) { 
             response($(xmlResponse).map(function() { 
              return { value: $(this).text() }; 
             })) 
            }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        alert(textStatus); 
       } 

      }); 

     }, 
     minLength: 2 

    }); 
}); 

, что я gettting выход в настоящее время, как этот один один элемент со всеми струнами прикрепленного

  Air PollutantsAir FacilitiesAir EmissionsAir Pollution Air Quality MonitoringAir Piracy 

то, что я хочу, чтобы отобразить в из положить это одна строка в одной строке

 Air Pollutants 
     AirFacilities 
     Air Emissions 
     Air Pollution 
     Air Quality Monitoring 
     Air Piracy 

Я не могу понять, что я делаю неправильно, пожалуйста, помогите ...

+0

Вы просмотрели http://jqueryui.com/autocomplete/#xml и http://jqueryui.com/resources/demos/autocomplete/xml.html –

+0

проверьте, что ваш веб-сервис возвращает xml или нет в сетевой панели firebug/chrome console/ie devtools –

+0

он возвращает xml, структура, указанная выше, копируется из ответа – user388969

ответ

1

хорошо понял это, ваш успех обратного вызова должен быть таким:

success: function (xmlResponse) { 
         response($("string", xmlResponse).map(function() { 
          return { 
           value: $(this).text() 
          }; 
         })); 
        }, 

, потому что здесь вы получаете ответ, который содержит XML-узел строки внутри ArrayofStrings вашего выбора для отображения в ответ должно быть, как это

$("string", xmlResponse) 

надеюсь, что поможет !!

+0

Спасибо большое, что действительно работало – user388969

Смежные вопросы