---
layout: docs
title: Table Filter Control
description: Table Filter Control extension of Bootstrap Table.
group: extensions
toc: true
---
## Usage
{% highlight html %}
{% endhighlight %}
## Example
[Filter Control](https://examples.bootstrap-table.com/#extensions/filter-control.html)
## Options
### filterControl
- **Attribute:** `data-filter-control`
- **type:** `Boolean`
- **Detail:**
Set to `true` to add an `input` or `select` into the column.
- **Default:** `false`
### filterControlVisible
- **Attribute:** `data-filter-control-visible`
- **type:** `Boolean`
- **Detail:**
Set to `false` to hide the filter controls.
- **Default:** `true`
### alignmentSelectControlOptions
- **Attribute:** `data-alignment-select-control-options`
- **type:** `String`
- **Detail:**
Set the alignment of the select control options. Use `left`, `right` or `auto`.
- **Default:** `undefined`
### filterControlContainer
- **Attribute:** `data-filter-control-container`
- **type:** `Selector`
- **Detail:**
Set to e.g. `#filter` to allow custom input filter in an element with the id `filter`.
Each filter element (input or select) must have the following class `bootstrap-table-filter-control-` ( must be replaced with the defined [Field](https://bootstrap-table.com/docs/api/column-options/#field) name).
- **Default:** `false`
### filterDataCollector
- **Attribute:** `data-filter-data-collector`
- **type:** `Function`
- **Detail:**
Collect data which will added to the select filter, to filter through e.g. labels that are comma separated and displayed with a formatter.
- **Default:** `undefined`
### filterControlMultipleSearch
- **Attribute:** `data-filter-control-multiple-search`
- **type:** `bool`
- **Detail:**
Set to `true` to allow searching multiple values at once.
The values will be split by a delimiter, see option `filterControlMultipleSearchDelimiter`.
- **Default:** `false`
### filterControlMultipleSearchDelimiter
- **Attribute:** `data-filter-control-multiple-search-delimiter`
- **type:** `String`
- **Detail:**
Defines the delimiter which will be used to split the search values in the option `filterControlMultipleSearchDelimiter`.
- **Default:** `,`
### filterControlSearchClear
- **Attribute:** `data-filter-control-search-clear`
- **type:** `bool`
- **Detail:**
Set to `true` to clear the filter control filters using the table option [showSearchButton](/docs/api/table-options/#showsearchbutton).
- **Default:** `true`
### searchOnEnterKey
- **Attribute:** `data-search-on-enter-key`
- **type:** `Boolean`
- **Detail:**
Set to `true` to fire the search action when the user presses the enter key.
- **Default:** `false`
### showFilterControlSwitch
- **Attribute:** `data-show-filter-control-switch`
- **type:** `Boolean`
- **Detail:**
Set to `true` to show the filter control switch button.
- **Default:** `false`
### sortSelectOptions
- **Attribute:** `data-sort-select-options`
- **type:** `Boolean`
- **Detail:**
Set to `true` to sort the option elements of the select control.
- **Default:** `false`
## Column options
### filterControl
- **Attribute:** `data-filter-control`
- **type:** `String`
- **Detail:**
Set `input`: show an input control, `select`: show a select control, `datepicker`: show a html5 datepicker control.
- **Default:** `undefined`
### filterControlPlaceholder
- **attribute:** `data-filter-control-placeholder`
- **type:** `String`
- **Detail:**
Set this to show a placeholder only in the input filter control.
- **Default:** `''`
### filterCustomSearch
- **Attribute:** `data-filter-custom-search`
- **type:** `function`
- **Detail:**
The custom search function is executed instead of the built-in search function and takes four parameters:
* `text`: the search text.
* `value`: the value of the column to compare.
* `field`: the column field name.
* `data`: the table data.
Return `false` to filter out the current column/row.
Return `true` to not filter out the current column/row.
Return `null` to skip the custom search for the current value.
- **Default:** `undefined`
### filterData
- **Attribute:** `data-filter-data`
- **type:** `String`
- **Detail:**
Set custom select filter values, use
`var:variable` to load from a variable
`obj:variable.key` to load from an object
`url:http://www.example.com/data.json` to load from a remote JSON file
`json:{key:data}` to load from a JSON string.
`func:functionName` to load from a function.
- **Default:** `undefined`
### filterDatepickerOptions
- **Attribute:** `data-filter-datepicker-options`
- **type:** `Object`
- **Detail:**
If the datepicker option is set use this option to configure the datepicker with the native options. Use this way: `data-filter-datepicker-options='{"max":value1, "min": value2, "step": value3}'`. For more information visit this [documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date)
- **Default:** `undefined`
### filterDefault
- **Attribute:** `data-filter-default`
- **type:** `String`
- **Detail:**
Set the default value of the filter.
- **Default:** `undefined`
### filterOrderBy
- **attribute:** `data-filter-order-by`
- **type:** `String`
- **Detail:**
Set this to order the options in a select control whether ascending (`'asc'`), descending (`'desc'`) or in the order provided by the server (`'server'`).
- **Default:** `'asc'`
### filterStartsWithSearch
- **attribute:** `data-filter-starts-with-search`
- **type:** `Boolean`
- **Detail:**
Set to `true` if you want to use the starts with search mode.
- **Default:** `false`
### filterStrictSearch
- **Attribute:** `data-filter-strict-search`
- **type:** `Boolean`
- **Detail:**
Set to `true` if you want to use the strict search mode.
- **Default:** `false`
### Icons
* clear: `'glyphicon-trash icon-clear'`
* filterControlSwitchHide: `'glyphicon-zoom-out icon-zoom-out'`
* filterControlSwitchShow: `'glyphicon-zoom-in icon-zoom-in'`
## Events
### onColumnSearch(column-search.bs.table)
* Fired when we are searching into the column data
### onCreatedControls(created-controls.bs.table)
* Fired when we are searching into the column data
## Methods
### triggerSearch
* Trigger manually the search action
### clearFilterControl
* Clear all the controls added by this plugin (similar to `showSearchClearButton` option).
### toggleFilterControl
* Toggles the visibility (show/hide) of the filter controls.
## Localizations
### formatClearFilters
- **type:** `Function`
- **Default:** `function () { return "Clear Filters" }`
### formatFilterControlSwitch
- **type:** `Function`
- **Default:** `function () { return "Hide/Show controls" }`
### formatFilterControlSwitchHide
- **type:** `Function`
- **Default:** `function () { return "Hide controls" }`
### formatFilterControlSwitchShow
- **type:** `Function`
- **Default:** `function () { return "Show controls" }`