【发布时间】:2014-01-17 12:05:49
【问题描述】:
我有一个绑定到 KendoUI 自动完成小部件的文本框。 JS 代码如下所示:
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
});
我在这里遇到了一件奇怪的事情。自动完成的工作方式是,当我键入第三个字符时,它会运行到服务器并从那里取回 JSON 数据并显示前十个结果。问题是这个文本框正在搜索大型数据集,因此对于某些具有 4 个字符的查询,结果集可能超过 1000 个项目。由于某种原因,该小部件无法确定有超过 10 个结果,并且当我在显示的自动完成下拉列表中向下滚动时,它不会触发对第二页的任何搜索,依此类推。您可以看到数据源的serverPaging 设置为true,但这无济于事。
感谢任何帮助。谢谢。
【问题讨论】:
标签: autocomplete kendo-ui