This section covers saving and restoring the grid state, such as the filter model, selected rows, etc.
Saving and Restoring State
The initial state is provided via the grid option initialState
. It is only read once when the grid is created.
const gridOptions = {
initialState: {
filter: {
filterModel: {
year: {
filterType: 'set',
values: ['2012'],
}
}
},
columnVisibility: {
hiddenColIds: ['athlete'],
},
rowGroup: {
groupColIds: ['athlete'],
}
},
// other grid options ...
}
The current grid state can be retrieved by listening to the state updated event, which is fired with the latest state when it changes, or via api.getState()
.
The state is also passed in the Grid Pre-Destroyed Event, which can be used to get the state when the grid is destroyed.
Invoked immediately before the grid is destroyed. This is useful for cleanup logic that needs to run before the grid is torn down. |
Grid state has been updated. |
State Contents
The following is captured in the grid state:
- Aggregation Functions (column state)
- Opened Column Groups
- Column Order (column state)
- Pinned Columns (column state)
- Column Sizes (column state)
- Hidden Columns (column state)
- Column Filter Model
- Advanced Filter Model
- Focused Cell (Client-Side Row Model only)
- Current Page
- Pivot Mode and Columns (column state)
- Cell Selection
- Row Group Columns (column state)
- Expanded Row Groups
- Row Selection
- Side Bar
- Sort (column state)
When restoring the current page using the Server Side Row Model or Infinite Row Model, additional configuration is required:
- For the Server Side Row Model - set the
serverSideInitialRowCount
property to a value which includes the rows to be shown. - For the Infinite Row Model - set the
infiniteInitialRowCount
property to a value which includes the rows to be shown.
All state properties are optional, so a property can be excluded if you do not want to restore it.
If applying some but not all of the column state properties, then initialState.partialColumnState
must be set to true
.
The state also contains the grid version number. When applying state with older version numbers, any old state properties will be automatically migrated to the current format.
Properties available on the GridState
interface.
Grid version number |
Includes aggregation functions (column state) |
Includes opened groups |
Includes column ordering (column state) |
Includes left/right pinned columns (column state) |
Includes column width/flex (column state) |
Includes hidden columns (column state) |
Includes Column Filters and Advanced Filter |
Includes currently focused cell. Works for Client-Side Row Model only |
Includes current page |
Includes current pivot mode and pivot columns (column state) |
Includes currently selected cell ranges |
Includes current row group columns (column state) |
Includes currently expanded group rows |
Includes currently selected rows. For Server-Side Row Model, will be ServerSideRowSelectionState | ServerSideRowGroupSelectionState , for other row models, will be an array of row IDs
|
Includes current scroll position. Works for Client-Side Row Model only |
Includes current Side Bar positioning and opened tool panel |
Includes current sort columns and direction (column state) |
When providing a partial initialState with some but not all column state properties, set this to true . Not required if passing the whole state object retrieved from the grid.
|