This page covers a non-latest version of Handsontable.
# Filters
# Description
The plugin allows filtering the table data either by the built-in component or with the API.
See the filtering demo for examples.
Example
const container = document.getElementById('example');
const hot = new Handsontable(container, {
data: getData(),
colHeaders: true,
rowHeaders: true,
dropdownMenu: true,
filters: true
});
# Options
# filters
Source code (opens new window)filters.filters : boolean
The filters option configures the Filters plugin.
You can set the filters option to one of the following:
| Setting | Description |
|---|---|
false | Disable the Filters plugin |
true | Enable the Filters plugin |
Read more:
Default: undefined Example
// enable the `Filters` plugin
filters: true,
# Methods
# addCondition
Source code (opens new window)filters.addCondition(column, name, args, [operationId])
Adds condition to the conditions collection at specified column index.
Possible predefined conditions:
begins_with- Begins withbetween- Betweenby_value- By valuecontains- Containsempty- Emptyends_with- Ends witheq- Equalgt- Greater thangte- Greater than or equallt- Less thanlte- Less than or equalnone- None (no filter)not_between- Not betweennot_contains- Not containsnot_empty- Not emptyneq- Not equal.
Possible operations on collection of conditions:
conjunction- Conjunction (opens new window) on conditions collection (by default), i.e. for such operation:
c1 AND c2 AND c3 AND c4 ... AND cn === TRUE, where c1 ... cn are conditions.disjunction- Disjunction (opens new window) on conditions collection, i.e. for such operation:
c1 OR c2 OR c3 OR c4 ... OR cn === TRUE, where c1, c2, c3, c4 ... cn are conditions.disjunctionWithExtraCondition- Disjunction on firstn - 1* conditions from collection with an extra requirement computed from the last condition, i.e. for such operation:
c1 OR c2 OR c3 OR c4 ... OR cn-1 AND cn === TRUE, where c1, c2, c3, c4 ... cn are conditions.
* when n is collection size; it's used i.e. for one operation introduced from UI (when choosing from filter's drop-down menu two conditions with OR operator between them, mixed with choosing values from the multiple choice select)
Note: Mind that you cannot mix different types of operations (for instance, if you use conjunction, use it consequently for a particular column).
Example
const container = document.getElementById('example');
const hot = new Handsontable(container, {
data: getData(),
filters: true
});
// access to filters plugin instance
const filtersPlugin = hot.getPlugin('filters');
// add filter "Greater than" 95 to column at index 1
filtersPlugin.addCondition(1, 'gt', [95]);
filtersPlugin.filter();
// add filter "By value" to column at index 1
// in this case all value's that don't match will be filtered.
filtersPlugin.addCondition(1, 'by_value', [['ing', 'ed', 'as', 'on']]);
filtersPlugin.filter();
// add filter "Begins with" with value "de" AND "Not contains" with value "ing"
filtersPlugin.addCondition(1, 'begins_with', ['de'], 'conjunction');
filtersPlugin.addCondition(1, 'not_contains', ['ing'], 'conjunction');
filtersPlugin.filter();
// add filter "Begins with" with value "de" OR "Not contains" with value "ing"
filtersPlugin.addCondition(1, 'begins_with', ['de'], 'disjunction');
filtersPlugin.addCondition(1, 'not_contains', ['ing'], 'disjunction');
filtersPlugin.filter();
| Param | Type | Default | Description |
|---|---|---|---|
| column | number | Visual column index. | |
| name | string | Condition short name. | |
| args | Array | Condition arguments. | |
| [operationId] | string | "conjunction" | optional id of operation which is performed on the column. |
# clearConditions
Source code (opens new window)filters.clearConditions([column])
Clears all conditions previously added to the collection for the specified column index or, if the column index was not passed, clear the conditions for all columns.
| Param | Type | Description |
|---|---|---|
| [column] | number | optional Visual column index. |
# destroy
Source code (opens new window)filters.destroy()
Destroys the plugin instance.
# disablePlugin
Source code (opens new window)filters.disablePlugin()
Disables the plugin functionality for this Handsontable instance.
# enablePlugin
Source code (opens new window)filters.enablePlugin()
Enables the plugin functionality for this Handsontable instance.
# filter
Source code (opens new window)filters.filter()
Filters data based on added filter conditions.
Emits: Hooks#event:beforeFilter, Hooks#event:afterFilter
# getDataMapAtColumn
Source code (opens new window)filters.getDataMapAtColumn([column]) ⇒ Array
Returns handsontable source data with cell meta based on current selection.
| Param | Type | Description |
|---|---|---|
| [column] | number | optional The physical column index. By default column index accept the value of the selected column. |
Returns: Array - Returns array of objects where keys as row index.
# getSelectedColumn
Source code (opens new window)filters.getSelectedColumn() ⇒ object | null
Gets last selected column index.
Returns: object | null - Return null when column isn't selected otherwise
object containing information about selected column with keys visualIndex and physicalIndex.
# isEnabled
Source code (opens new window)filters.isEnabled() ⇒ boolean
Checks if the plugin is enabled in the handsontable settings. This method is executed in Hooks#beforeInit
hook and if it returns true than the Filters#enablePlugin method is called.
# removeConditions
Source code (opens new window)filters.removeConditions(column)
Removes conditions at specified column index.
| Param | Type | Description |
|---|---|---|
| column | number | Visual column index. |
← ExportFile Formulas →