Получить значения фильтра в пользовательском интерфейсе сетки кендо - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть сетка кендо как

<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 голосов
/ 11 февраля 2019

Примитивный вариант

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...