数据源定义为:
var KendoDataSource_EmployeeAutoCompleteByFirstName = {
serverFiltering: true,
serverPaging: true,
serverSorting: true,
pageSize: 10,
transport: {
read: {
url: '@Url.Action("GetEmployeesByFirstName", "Employee")',
dataType: "json"
}
}
};
自动完成定义为:
function KendoGridFilterAutoComplete(element, kendoDataSource, textField) {
element.kendoAutoComplete({
minLength: 3,
filter: "startswith",
dataSource: kendoDataSource,
dataTextField: textField
});
}
使用 kendoAutoComplete 小部件时,数据源发送的过滤器如下:
filter[logic]=and&
filter[filters][0][value]=smith&
filter[filters][0][operator]=startswith&
filter[filters][0][field]=LastName&
filter[filters][0][ignoreCase]=true
来自服务器的 JSON 响应如下所示:
[
{"First":"Bill","LastName":"Smith"},
{"First":"Jack","LastName":"Smith"},
{"First":"ABC","LastName":"Smithy"}
]
这很好用,但是正如您所见,我返回了多个条目,因此 kendoAutoComplete 显示了两个相同的条目(Smith),因为名字不同。
所以我真正想要的是在服务器上做不同的事情,并且只返回可能的姓氏,作为一个字符串数组,如下所示:
[
"Smith",
"Smithy"
]
然而 kendoAutoComplete 不能处理这个。它显示“未定义”或错误。
如何解决这个问题?