Column reordering

Dragging a column into a new position with reorderableColumns.

Last updated August 3, 2026

reorderableColumns turns on dragging a header to a new position, unless a column sets its own reorderable to override the grid. A column that can't move can still be moved past — dragging one past a fixed column is fine, only the fixed one can't itself be picked up.

Drag a header to reorder it

reorderableColumns

Live example
IdServiceEnvironment NameEnvironment RegionStatusCost
1checkout-apiproductionus-east-1healthy1240.5
2billing-workerproductioneu-west-1degraded860.2
3search-indexstagingus-east-1healthy92.75
4notificationsproductionus-west-2down305.4
5analytics-pipelinestagingeu-west-1healthy145
  1. Interact with the grid above to see its callbacks fire.
<DataGridComponent
  columns={columns}
  dataSource={rows}
  reorderableColumns
  onColumnOrderChange={({ columnId, order }) => persist(order)}
/>;

Props

PropTypeDefaultDescription
reorderableColumnsbooleanfalseWhether columns can be dragged into a new position.
defaultColumnOrderreadonly string[]Column ids in the order to start in. Uncontrolled, and partial — ids it omits keep their position among columns.
onColumnOrderChange(event: ColumnOrderEvent) => voidCalled once when the user drops a column somewhere new. A drop that leaves the order unchanged does not call it.
column.reorderablebooleanPer-column override of reorderableColumns. A column that cannot move can still be moved past.

Keyboard & pointer interactions

  • Drag a header to reorder columns.
  • With a header focused, Ctrl+ArrowLeft / Ctrl+ArrowRight reorders it via keyboard; Escape cancels an in-progress drag.
Edit this page on GitHub