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.