我正在使用带有服务器过滤功能的Angular Kendo网格。输入第一个字符kendo时会触发API调用(网格过滤处于行模式)。我想知道是否有一种方法可以限制API调用,直到用户输入3个字符或按Enter键。
我的网格配置如下所示:
vm.grid.setOptions({
groupable: true,
sortable: true,
resizable: true,
scrollable: true,
reorderable: true,
columns: gridColumns,
excel: {
allPages: true
},
page:2,
pageable: {
pageSizes: [10, 20, 50]
},
dataSource : {
page:1,
transport:{
read: {
url: pageurl,
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json"
},
parameterMap: function (options) {
reqObject.FilterData = {};
//omitted for brevity
var request=JSON.stringify(reqObject);
return request;
}
},
schema: {
data: dataField,
total: totalCount
},
filter:{
filters:[]
},
autoBind: false,
pageSize: 10,
serverPaging: true,
serverSorting: true,
serverFiltering: true
},
filterable: {
mode: "row"
},
columnMenu: {
columns: false
}
});
最佳答案
如果希望它在输入至少3个字符时触发,则可以在列级别指定一个minLength。
我还建议添加一个延迟,以便如果他们继续键入,它将等待直到他们暂停足够长的时间才能运行过滤器。
columns: [{
field: "Name",
title: "Name",
filterable: {
cell: {
delay: 1000,
minLength: 3
}
}
}