javascript - 仅在按下 Enter 时允许剑道网格服务器过滤 API 调用

标签 javascript angularjs kendo-ui kendo-grid

我正在使用带有服务器过滤功能的 Angular Kendo 网格。输入第一个字符时,剑道触发 API 调用(网格过滤处于行模式)。我想知道有没有办法限制 API 调用,直到用户输入 3 个字符或按回车键。

我的网格配置如下:

 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
       }
   }
}

关于javascript - 仅在按下 Enter 时允许剑道网格服务器过滤 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248143/

相关文章:

javascript - 在 Meteor 中登录并注册 Facebook 时出现问题

javascript - Ajax 调用仅返回部分数据

javascript - 如何使用剑道验证器验证日期格式为 yyyy-MM-dd?

css - 如何控制 KendoUI 下拉菜单的定位并防止其与输入文本框重叠?

css - 从输入字段中删除 IE 10 清除按钮

javascript - 使用 AngularJS 获取元素而不引用文档

javascript - div的 Angular js幻灯片动画中的动画?

javascript - 如何在 $on 事件处理程序中使用 $scope

javascript - Angular ng-repeat with condition

javascript - 使用 onClick 调用 jquery 函数