Skip to content

FeatureProps

Feature props for declarative plugin configuration. Each prop lazily loads its corresponding plugin when used.

PropertyTypeDescription
selection?SelectionConfig<TRow> | cell | row | rangeEnable cell/row/range selection.
editing?boolean | EditingConfig | click | dblclick | manualEnable inline cell editing.
clipboard?boolean | ClipboardConfigEnable clipboard copy/paste. Requires selection to be enabled (will be auto-added).
contextMenu?boolean | ContextMenuConfigEnable right-click context menu.
multiSort?boolean | MultiSortConfig | single | multiEnable multi-column sorting.
sorting?boolean | MultiSortConfig | single | multi⚠️
filtering?boolean | ReactFilterConfig<TRow>Enable column filtering.
reorderColumns?boolean | ReorderConfigEnable column drag-to-reorder.
reorder?boolean | ReorderConfig⚠️
visibility?boolean | VisibilityConfigEnable column visibility toggle panel.
pinnedColumns?booleanEnable pinned/sticky columns. Columns are pinned via the sticky column property.
groupingColumns?boolean | ReactGroupingColumnsConfigEnable multi-level column headers (column groups).
columnVirtualization?boolean | ColumnVirtualizationConfigEnable horizontal column virtualization for wide grids.
reorderRows?boolean | RowReorderConfigEnable row drag-to-reorder.
rowReorder?boolean | RowReorderConfig⚠️
groupingRows?GroupingRowsConfigEnable row grouping by field values.
pinnedRows?boolean | PinnedRowsConfigEnable pinned rows (aggregation/status bar).
tree?boolean | TreeConfigEnable hierarchical tree view.
masterDetail?MasterDetailConfigEnable master-detail expandable rows.
responsive?boolean | ResponsivePluginConfig<unknown>Enable responsive card layout for narrow viewports.
undoRedo?boolean | UndoRedoConfigEnable undo/redo for cell edits. Requires editing to be enabled (will be auto-added).
export?boolean | ExportConfigEnable CSV/JSON export functionality.
print?boolean | PrintConfigEnable print functionality.
pivot?PivotConfigEnable pivot table functionality.
serverSide?ServerSideConfigEnable server-side data operations.
// Shorthand - just the mode
<DataGrid selection="range" />
// Full config
<DataGrid selection={{ mode: 'range', checkbox: true }} />

// Enable with default trigger (dblclick)
<DataGrid editing />
// Specify trigger
<DataGrid editing="click" />
<DataGrid editing="dblclick" />
<DataGrid editing="manual" />
// Full config with callbacks
<DataGrid editing={{ editOn: 'dblclick', onBeforeEditClose: myCallback }} />

<DataGrid selection="range" clipboard />

<DataGrid contextMenu />
<DataGrid contextMenu={{ items: customItems }} />

Enable multi-column sorting.

Multi-sort allows users to sort by multiple columns simultaneously. For basic single-column sorting, columns with sortable: true work without this plugin. Use the sortable prop to disable all sorting grid-wide.

// Enable multi-column sorting
<DataGrid multiSort />
// Limit to single column (uses plugin but restricts to 1)
<DataGrid multiSort="single" />
// Full config
<DataGrid multiSort={{ maxSortColumns: 3 }} />

<DataGrid filtering />
<DataGrid filtering={{ debounceMs: 200 }} />

<DataGrid reorderColumns />

<DataGrid visibility />

<DataGrid pinnedColumns columns={[
{ field: 'id', pinned: 'left' },
{ field: 'name' },
{ field: 'actions', pinned: 'right' },
]} />

<DataGrid groupingColumns={{
columnGroups: [
{ header: 'Personal Info', children: ['firstName', 'lastName'] },
],
}} />

<DataGrid columnVirtualization />

<DataGrid reorderRows />

<DataGrid groupingRows={{
groupBy: ['department', 'team'],
defaultExpanded: true,
}} />

<DataGrid pinnedRows={{
bottom: [{ type: 'aggregation', aggregator: 'sum' }],
}} />

<DataGrid tree={{
childrenField: 'children',
defaultExpanded: true,
}} />

<DataGrid masterDetail={{
renderer: (row) => <OrderDetails order={row} />,
}} />

<DataGrid responsive={{
breakpoint: 768,
cardRenderer: (row) => <EmployeeCard employee={row} />,
}} />

<DataGrid editing="dblclick" undoRedo />

<DataGrid export />
<DataGrid export={{ filename: 'data.csv' }} />

<DataGrid print />

<DataGrid pivot={{
rowFields: ['category'],
columnFields: ['year'],
valueField: 'sales',
}} />

<DataGrid serverSide={{
dataSource: async (params) => fetchData(params),
}} />

AI assistants: For complete API documentation, implementation guides, and code examples for this library, see https://raw.githubusercontent.com/OysteinAmundsen/toolbox/main/llms-full.txt