在Kendo Grid UI中获取过滤器值

时间:2019-02-11 16:54:36

标签: angular typescript kendo-ui

我的剑道网格为

<kendo-grid
    [data]="gridData"
    [pageSize]="state.take"
    [skip]="state.skip"
    [sort]="state.sort"
    [filter]="state.filter"
    filterable="menu"
    (dataStateChange)="dataStateChange($event)"
>

和component.ts文件中

    public dataStateChange(state: DataStateChangeEvent): void {
    this.state = state;
    // get filter values here 

}

我想在上面的函数中获取过滤器值和字段名称,并将它们传递给api进行服务器端过滤,但无法从状态中提取值。

有什么方法可以从状态对象中提取字段和值?

1 个答案:

答案 0 :(得分:1)

原始变体

import { isCompositeFilterDescriptor } from '@progress/kendo-data-query';
....
const filterValues = state.filter.filters.map(f => isCompositeFilterDescriptor(f) ? f.filters :[f] ).reduce((p,n) => p.concat(n), []);

但是您应该选中“逻辑”字段,请参见https://www.telerik.com/kendo-angular-ui/components/dataquery/api/CompositeFilterDescriptor/