Skip to main content

Grid Filtering

Filtering grid
Loading FDC sample…
FdcGrid(
dataSet: customers,
columns: customerColumns,
header: const FdcGridHeader(
filters: FdcGridHeaderFilters(
visible: true,
initiallyVisible: true,
),
),
);

The grid can manage a header filter row while using the same dataset filtering pipeline described in DataSet Filtering. Header filter UI is disabled by default.

Header filter visibility

FdcGrid(
dataSet: customers,
header: const FdcGridHeader(
filters: FdcGridHeaderFilters(visible: true),
),
)

visible: true enables the grid-managed filter UI. Because initiallyVisible defaults to true, the filter row is shown immediately once the feature is enabled. Set initiallyVisible: false when filters should be available from the grid menu but collapsed on first render. Programmatic dataset filtering remains available regardless of the grid UI setting.

Debounce behavior

const FdcGridHeaderFilters(
visible: true,
options: FdcGridFilterOptions(
debounceDuration: Duration(milliseconds: 300),
debouncePolicy: FdcDebouncePolicy.adaptive,
),
)

adaptive uses the configured duration as a base and allows FDC to increase the effective delay for larger datasets. disabled keeps text edits local until explicit submission.

Per-column filtering

const FdcTextColumn<dynamic>(
fieldName: 'company',
filterConfig: FdcColumnFilterConfig(
defaultOperator: FdcFilterOperator.contains,
caseSensitive: false,
),
)

Disable filtering for one column:

const FdcProgressColumn<dynamic>(
fieldName: 'completion',
filterConfig: FdcColumnFilterConfig(enabled: false),
)

Runtime commands

await controller.clearFilters();
controller.showFilters();
await controller.hideFilters();

Header filter operators are constrained by field type, column configuration, and adapter capability when the dataset is paged.