KendoUI网格在一次刷新中更改过滤器和排序

KendoUI Grid alter filter and sort in one refresh

本文关键字:过滤器 排序 刷新 一次 网格 KendoUI      更新时间:2023-09-26

我正在尝试一次性设置过滤器和排序参数并更新我的网格,而不是两个单独的调用,例如:

grid.dataSource.filter({
    field: 'branchId',
    operator: 'eq',
    value: selectedBranchId
});
grid.dataSource.sort({
    field: 'id',
    dir: 'desc'
});

我试过:

grid.dataSource.data({
    filter: {
      field: 'branchId',
      operator: 'eq',
      value: selectedBranchId
    },
    sort: {
      field: 'id',
      dir: 'desc'
    }
})
  grid.dataSource.read(); 
  grid.refresh(); 

这不起作用,并在控制台中给我以下错误:

Uncaught TypeError: Cannot read property 'slice' of null in kendo.all.min.js:13

要将多个操作合并为一个操作,请使用查询方法。

查询就是您所需要的。

另一种解决方法是间接设置过滤器和排序,然后在需要时调用提取方法:

dataSource._filter = yourFilter;
dataSource._sort = yourSort;
dataSource.fetch();

当dataSource已经包含page、take、skip等查询设置时,第二种情况可能很有用。它们将被查询方法覆盖,但通过间接设置过滤器/排序保持不变。