Data grid - Column groups
Group your columns.
Grouping columns allows you to have a multi-level hierarchy of columns in your header.
Define column groups
You can define column groups with the columnGroupingModel prop.
This prop receives an array of column groups.
A column group is defined by at least two properties:
groupId: a string used to identify the groupchildren: an array containing the children of the group
The children attribute can contain two types of objects:
- leafs with type
{ field: string }, which add the column with the correspondingfieldto this group. - other column groups which allows you to have nested groups.
<DataGrid
columnGroupingModel={[
{
groupId: 'internal data',
children: [{ field: 'id' }],
},
{
groupId: 'character',
children: [
{
groupId: 'naming',
children: [{ field: 'lastName' }, { field: 'firstName' }],
},
{ field: 'age' },
],
},
]}
/>
Press Enter to start editing
Customize column group
In addition to the required groupId and children, you can use the following optional properties to customize a column group:
headerName: the string displayed as the column's name (instead ofgroupId).description: a text for the tooltip.headerClassName: a CSS class for styling customization.renderHeaderGroup: a function returning custom React component.
Press Enter to start editing
Column reordering
By default, the columns that are part of a group cannot be dragged to outside their group.
You can customize this behavior on specific groups by setting freeReordering: true in a column group object.
In the example below, the Full name column group can be divided, but not other column groups.
Press Enter to start editing