
- MODX 3
- PHP 8.2
- Vue 3


Result: the visitor filters rows without a full reload. Without JavaScript the form stays a normal GET. Requires PageBuilder Pro and capability datasources.
[[!PageBuilder]].datasources is on.table_key, or miniShop3.filterable_grid section.modx-resources, pagebuilder-tables, or minishop3. For a table set the key.pagebuilder-filterable-grid.js. The address updates with history.pushState.pb_fg_{id}_search, _sort, _dir, _page, _f_{field}. DatasourceSectionEnricher writes the prefix pb_fg_{id}_ into filter_param_prefix.contains, number and currency → gte, color → eq. An image column is left out of filters and sorting. The filter label comes from the column label.A page number past the last page is clamped. An empty result uses pagebuilder_fe_filter_empty. The reset button uses pagebuilder_fe_filter_clear.
Title Catalog. Datasource pagebuilder-tables, with the same table key as on the Tables tab. Limit 12 (page size).
After you save, open the page and type a word into search. The address gains pb_fg_{id}_search, where {id} is the section id. Reset restores the list and uses lexicon pagebuilder_fe_filter_clear. An empty match prints pagebuilder_fe_filter_empty.
With JavaScript the list updates without a full reload, and the query stays in the address. Turn JavaScript off and submit the form: it is a normal GET with the same parameters. An image column does not appear in the filters.
Delete the section.