У меня есть текстовое поле, связанное с виджетами автозаполнения KendoUI. Код JS выглядит так:KendoUI Autocomplete paging issue
var dataSourceImeSearch = {
type: "json",
transport: {
read: {
url: "@Url.Action("ImeSearch")",
contentType: "application/json; charset=utf-8",
type: "POST"
},
parameterMap: function (data, type) {
if (type == "read") {
if (data.filter) {
data = $.extend({ sort: null, filter: data.filter.filters[0] }, data);
} else {
data = $.extend({ sort: null, filter: null }, data);
}
return JSON.stringify(data);
} else {
return JSON.stringify({ model: data });
}
}
},
batch: false,
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true,
schema: {
errors: "Errors",
data: "Data",
total: "TotalRecordCount",
model: myModel
},
error: function (e) {
if (e.errors) {
alert(e.errors);
}
}
};
$("#Ime").kendoAutoComplete({
dataTextField: "PunoIme",
filter: "contains",
minLength: 3,
dataSource: dataSourceImeSearch
});
У меня здесь странная вещь. Autocomplete работает с точки зрения того, что при вводе третьего символа он запускается на сервер и получает данные JSON оттуда и показывает первые десять результатов. Дело в том, что это текстовое поле ищет большие массивы данных, поэтому для некоторых запросов с 4 баллами набор результатов может содержать более 1000 элементов. По какой-то причине виджет не выясняет, что есть более 10 результатов, и когда я прокручиваю вниз в раскрывающемся списке автозаполнения, который отображается, он не будет запускать поиск второй страницы и так далее. Вы можете видеть, что для источника данных serverPaging
установлено значение true
, но это не помогает.
Любая помощь приветствуется. Спасибо.
Согласен, есть случаи, когда вам может понадобиться опция «показать больше результатов» в нижней части списка. Является ли это хорошим UX или нет, это вопрос мнения, кажется немного заносчивым из Kendo опустить поддержку для него на основе их мнения. Альтернативой, на которую вы могли бы обратить внимание, является Select2, она поддерживает «бесконечную прокрутку», как они ее называют. Http://ivaynberg.github.io/select2/#infinite –