Mat-table мультифильтр для таблицы. filterPredicate

Рейтинг: 0Ответов: 1Опубликовано: 25.01.2023

Не могу сделать чтобы фильтры работали отдельно, фильтр для колонок и общий фильтр.

  applyFilterInput(filterValue: string) {
    this.dataSource.filter = filterValue.trim().toLowerCase(); 
  }

  applyFilterColum(filterValue: string, filterColum) {
    this.resetFilterPredict = this.dataSource.filterPredicate;
    this.dataSource.filterPredicate = (data, filter: string) => {
      const textToSearch = data[filterColum] && data[filterColum].toLowerCase() || '';
      return textToSearch.indexOf(filter) !== -1;
    };
    this.dataSource.filter = filterValue.trim().toLowerCase();
  }

Хочу чтобы фильтры работали как здесь https://js.devexpress.com/Demos/WidgetsGallery/Demo/DataGrid/Filtering/Angular/Light/ То есть когда включается фильтр по колонке, в строке поиска вводятся данные и она фильтрует все колонки таблицы. Но при этом поиск не сбрасывает фильтр колонки а фильтрует данные которые отфильтровались по колонке. Можно по ссылке глянуть как там работает. Придумал свой фильтр вроде работает https://stackblitz.com/edit/angular-hbakxo-raxpej?file=app%2Ftable-filtering-example.ts Только когда я его применяю на другие данные он не работает в чем может быть проблема?

Ответы

▲ 0Принят

Сделал специфичный фильтр, но работает кому надо пользуйтесь https://stackblitz.com/edit/angular-hbakxo-raxpej?file=app%2Ftable-filtering-example.ts