Column Filter

Column filters are filters that are applied to the data at the column level. Many column filters can be active at once (e.g. filters set on different columns) and the grid will display rows that pass every column's filter.

Column filters are accessed in the grid UI either through the Column Menu or the Tool Panel.

Access via Column Menu
Access via Tool Panel

You can use the Provided Filters that come with the grid, or you can build your own Filter Components if you want to customise the filter experience to your application.

Example: Simple Filters

The example below demonstrates simple filters. The following can be noted:

  • Column Athlete has a simple text filter.
  • Column Age has a simple number filter.
  • Column Date has a simple date filter.

Configuring Filters on Columns

Set filtering on a column using the column definition property filter. The property can have one of the following values:

  • boolean: Set to true to enable the default filter. The default is Text Filter for ag-Grid Community and Set Filter for ag-Grid Enterprise.
  • string / Component: Provide a specific filter to use instead of the default filter.

The code below shows some column definitions with filters set:

columnDefs: [ // sets the text filter { field: 'athlete', filter: 'agTextColumnFilter' }, // sets the number filter { field: 'age', filter: 'agNumberColumnFilter' }, // use the default filter { field: 'gold', filter: true }, // use no filter (leaving unspecified means use no filter) { field: 'sport' } ]

If you want to enable filters on all columns, you should set a filter on the Default Column Definition. The following code snippet shows setting filter=true for all columns via the defaultColDef and then setting filter=false for the Sport column, so all columns have a filter except Sport.

gridOptions = { ... // anything specified in defaultColDef gets applied to all columns defaultColDef: { filter: true // set filtering on for all columns }, // then set individual column definitions columnDefs: [ // filter not specified, defaultColDef setting is used { field: 'athlete' }, { field: 'age' }, // filter specifically set to 'false' { field: 'sport', filter: false } // use no filter ] }

Filter Parameters

Each filter can take additional filter parameters by setting colDef.filterParams. The parameters each filter type accepts are specific to each filter; parameters for the provided filters are explained in their relevant sections.

The code below shows configuring the text filter on the Athlete column and providing extra filter parameters (what the buttons do is explained in Apply, Clear, Reset and Cancel Buttons).

columnDefinition = { field: 'athlete' // set the column to use text filter filter: 'agTextColumnFilter', // pass in additional parameters to the text filter filterParams: { buttons: ['reset', 'apply'], debounceMs: 200 } }

Filter Events

Filtering causes the following events to be emitted:

  • Filter Changed: Filter has changed and been applied by the grid.
  • Filter Modified: Filter UI has changed but not necessarily applied. This is useful when using an apply button if you want to know if the filter changed but was not applied.

Filtering Animation

To enable animation of the rows when filtering, set the grid property animateRows=true.

Relation to Quick Filter and External Filter

Column filters work independently of Quick Filter and External Filter. If a quick filter and / or external filter are applied along with a column filter, each filter type is considered and the row will only show if it passes all three types.

Column filters are tied to a specific column. Quick filter and external filter are not tied to any particular column. This section of the documentation talks about column filters only. For quick filter and external filter, click the links above to learn more.

Provided Filters

There are four filters that are provided by the grid. These are as follows:

providedFilters

agNumberColumnFilterA Number Filter for number comparisons.
agTextColumnFilterA Text Filter for string comparisons.
agDateColumnFilterA Date Filter for date comparisons.
agSetColumnFilterA Set Filter, influenced by how filters work in Microsoft Excel. This is an ag-Grid-Enterprise feature.

See the Provided Filters section for more details on using them.