我正在使用带有服务器过滤功能的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
       }
   }
}

09-10 12:20
查看更多