2017-02-10 4 views
0

Я пытаюсь добавить виджет автозаполнения на свою веб-страницу, персонализированный. После того, как несколько проблем с моей конфигурации, я решил попробовать official example непосредственно в моей веб-страницы, делать все, что я прочитал там, и заменить этотКак я могу сделать работу автозаполнения jQuery UI в старой версии jQuery UI?

.autocomplete("instance")._renderItem = function(ul, item) { 
    return $("<li>") 
    .append("<div>" + item.label + "<br>" + item.desc + "</div>") 
    .appendTo(ul); 
}; 

с этим

.data("uiAutocomplete")._renderItem = function (ul, item) { 
    return $("<li>") 
    .append("<div>" + item.label + "<br>" + item.desc + "</div>") 
    .appendTo(ul); 
}; 

, потому что я использую jQuery UI 1.10.4, и я не могу его обновить (мой босс не хочет, чтобы я это делал). Я не мог заставить этот пример работать, и я знаю, что если я его заработаю, у меня не будет проблем с его адаптацией к тому, что он должен делать.

Пожалуйста, вы знаете, как заставить его работать? Заранее спасибо.

ответ

0

Хорошо, я сдался. То, как я преодолел ситуацию, - это адаптация DTO, которую я трансформировал в JSON, и отправку в браузер в формат, который ожидает Autocomplete. Формат имеет три поля:

{ 
    id: ..., 
    label: ..., 
    value: ... 
} 

После этого я просто настроил автозаполнения таким образом:

$("#<%= nuevoPadrePem.ClientID %>").autocomplete({ 
    minLength: 6, 
    source: function (request, response) { 
     var term = request.term; 
     var result = []; 

     $.ajax({ 
      url: 'PMENUEVAVERS.aspx/GetResultadosBusqueda', 
      data: JSON.stringify({ texto: term }), 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (dtos) { 
       response(dtos.d); 
      } 
     }); 
    }, 
    select: function (event, ui) { 
     var dto = ui.item; 
     $("#<%= hdSelectedNuevoPadrePem.ClientID %>").val(dto.id); 
     $("#<%= nuevoPadrePem.ClientID %>").css('color', '#00BE00'); 
    } 
}) 

И это работало без проблем.

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