2013-06-24 5 views
1

Я пытаюсь добавить простой автозаполнения на свою страницу, которая покажет доступные номера. Я вижу обратный вызов контроллера, и список заполняется в контроллере, но ничего не отображается на интерфейсе.Kendo autocomplete не показывал результатов

Я просмотрел ответ в браузере и верны данные json.

HTML:

<input id="autocomplete"/> 

JavaScript:

var dataSource = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: "Entity/GetAvailableNumbers", 
      dataType: "json", 
      data: { 
       q: function() { 
        return $("#autocomplete").val(); 
       } 
      } 
     } 
    } 
}); 
dataSource.read(); 
console.log(dataSource); 
$("#autocomplete").kendoAutoComplete({ 
    dataSource: { 
     data: dataSource 
    } 
}); 

Контроллер:

public ActionResult GetAvailableNumbers([DataSourceRequest] DataSourceRequest request, string text) 
{ 
    // Simple loop that puts numbers into a list (usableNumbers) 
    return Json(usableNumbers, JsonRequestBehavior.AllowGet); 
} 
+0

Вы уверены, что JSONP правильный тип данных? – asawyer

+0

Это должно было быть json not jsonp. Извини за это. – Mithrilhall

+0

Какой тип usableNumbers? –

ответ

1

Это то, что в конечном итоге работает для меня.

JavaScript:

 $("#autocomplete").kendoAutoComplete({ 
      minLength: 2, 
      filter: 'contains', 
      dataSource: { 
       type: "json", 
       serverFiltering: false, 
       transport: { 
        read: "Entity/GetAvailableNumbers" 
       }, 
      } 
     });