Filters component
The Filters component renders UI controls for filtering and applies filtering. Must be a child of the Listing component.
See the Admin Design Pattern Library (Filters) topic for information about the UI design patterns that can be implemented using Filters component.
Options
Option
Description
Type
Default Value
componentThe path to the component's
.js file in terms of RequireJS.String
''chipsConfigConfiguration passed to the
FiltersChips component.Object
{ name: '${ $.name }_chips', provider: '${ $.chipsConfig.name }', component: 'Magento_Ui/js/grid/filters/chips'}statefullDefines a list of component properties whose values are automatically saved in the configured storage if they change.
key is the property's name and the value defines whether its saved.Object
{applied: true}stickyTmplAdditional
.html template that displays filters when the Toolbar component gets a fixed position.String
ui/grid/sticky/filterstemplatePath to the component's
.html template.String
ui/grid/filters/filterstemplates.filtersDescribes basic filter types. This definitions are used to dynamically create filter elements based on the
filter field specified in the corresponding column. For example, if a column's filter property contains the text value, then a Filter component instance with a definition for the text type will be created.Object
Contains definitions of the
text, select,dateRange and textRange filter types.Source files
Extends uiCollection:
- app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js
- app/code/Magento/Ui/view/base/web/templates/grid/sticky/filters.html
- app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html
Examples
Add a new filterable customer attribute
To add a new customer attribute to the customer grid and make it filterable, follow these steps:
- Create
view/adminhtml/ui_component/customer_listing.xmlto add a column component. - Create the column component PHP class which extends
Magento\Ui\Component\Listing\Columns\Column. - Create
etc/indexer.xmlto add the attribute to thecustomer_gridindex and define it as filterable. - Set
is_used_in_gridtotruefor the attribute.
Integration
This example integrates the Filters component with the Listing component:
<listing>
...
<listingToolbar>
<!-- integrates the Filters component -->
<filters name="listing_filters" />
</listingToolbar>
<!-- add columns -->
<columns name="columns_example">
<column name="column1" sortOrder="10">
<settings>
<filter>text</filter>
<dataType>text</dataType>
<label translate="true">Column 1</label>
<default>1</default>
</settings>
</column>
<column name="column2" sortOrder="13">
<settings>
<filter>text</filter>
<dataType>text</dataType>
<label translate="true">Column 2</label>
<default>2</default>
</settings>
</column>
</columns>
</listing>
Result