0

If I have to select filter from dropdownlist with check boxes. So user can select more than 1 filter for each specific column. How could it.

ngOnInit() {
    this.getRemoteData();

    // Overrride default filter behaviour of Material Datatable
    this.dataSource.filterPredicate = this.createFilter();
}
...

// Custom filter method fot Angular Material Datatable
createFilter() {
    let filterFunction = function (data: any, filter: string): boolean {
        let searchTerms = JSON.parse(filter);
        let isFilterSet = false;
        for (const col in searchTerms) {
            if (searchTerms[col].toString() !== '') {
                isFilterSet = true;
            } else {
                delete searchTerms[col];
            }
        }

        let nameSearch = () => {
            let found = false;
            if (isFilterSet) {
                for (const col in searchTerms) {
                    for (const element in col) {
                        searchTerms[col].[element ].trim().toLowerCase().split(' ').forEach(word => {
                            if (data[col].[element ].toString().toLowerCase().indexOf(word) != -1 && isFilterSet) {
                                found = true
                            }
                        });
                    }
                    return found
                } else {
                    return true;
                }
            }
        }
        return nameSearch()
    }
    return filterFunction
}
Benjamin Buch
  • 4,752
  • 7
  • 28
  • 51
deepthi
  • 1
  • 1
  • I think your answer is here https://stackoverflow.com/questions/49939979/filtering-specific-column-in-angular-material-table-with-filtering-in-angular – Jose Vicente Apr 19 '23 at 19:47
  • Thanks for responding. Actually this question is extension of code spy's reponse from the link you provided. So my question is what changes have to be made so user can select multiple values for filtering from a specific column? – deepthi Apr 19 '23 at 20:31

0 Answers0