# Grid Data Technical Reference

Canonical page: https://www.adaptabletools.com/docs/technical-reference-managing-grid-data

## Grid API

| Method | Returns | Description |
| --- | --- | --- |
| [addAgGridColumnDefinition(columnDefinition)](https://www.adaptabletools.com/docs/reference/gridapi.md#addaggridcolumndefinition) | `void` | Adds a Column Definition to the Grid |
| [addGridData(dataRows, config)](https://www.adaptabletools.com/docs/reference/gridapi.md#addgriddata) | `Promise<IRowNode[]>` | Adds rows to AdapTable (and AG Grid) |
| [addOrUpdateGridData(dataRows, config)](https://www.adaptabletools.com/docs/reference/gridapi.md#addorupdategriddata) | `Promise<\{ addedRows: IRowNode[]; updatedRows: IRowNode[]; \}>` | Adds or Updates AdapTable (and AG Grid) with new and changed rows |
| [applyFiltering()](https://www.adaptabletools.com/docs/reference/gridapi.md#applyfiltering) | `void` | Applies current Filtering in AdapTable |
| [clearAdaptableSorting()](https://www.adaptabletools.com/docs/reference/gridapi.md#clearadaptablesorting) | `void` | Removes Column Sorts in AdapTable |
| [clearFiltering()](https://www.adaptabletools.com/docs/reference/gridapi.md#clearfiltering) | `void` | Removes all current Filters in AdapTable |
| [clearRowGroupColumns()](https://www.adaptabletools.com/docs/reference/gridapi.md#clearrowgroupcolumns) | `void` | Clears Row Grouping in the Grid |
| [closeTransposedView()](https://www.adaptabletools.com/docs/reference/gridapi.md#closetransposedview) | `void` | Closes the transposed view of the Grid (if open) |
| [collapseAllRowGroups()](https://www.adaptabletools.com/docs/reference/gridapi.md#collapseallrowgroups) | `void` | Collapse all open groups in Row Grouping |
| [deleteGridData(dataRows, config)](https://www.adaptabletools.com/docs/reference/gridapi.md#deletegriddata) | `Promise<IRowNode[]>` | Deletes rows from AdapTable (and AG Grid) |
| [deselectAll()](https://www.adaptabletools.com/docs/reference/gridapi.md#deselectall) | `void` | Deselects all selected rows, cells and ranges |
| [deSelectNode(rowNode, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#deselectnode) | `void` | Deselects the AG Grid Row Node in AdapTable |
| [deSelectNodes(rowNodes, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#deselectnodes) | `void` | AG Grid Row Nodes in AdapTable |
| [deSelectRow(primaryKeyValue, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#deselectrow) | `void` | Deselects Row with given Primary Key Value |
| [deSelectRows(primaryKeyValues, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#deselectrows) | `void` | Deselects Row with given Primary Key Values |
| [expandAllRowGroups()](https://www.adaptabletools.com/docs/reference/gridapi.md#expandallrowgroups) | `void` | Expands all closed groups in Row Grouping |
| [expandRowGroupsForValues(columnValues)](https://www.adaptabletools.com/docs/reference/gridapi.md#expandrowgroupsforvalues) | `void` | Expands Row Groups that contain given keys |
| [getAgGridRowModelType()](https://www.adaptabletools.com/docs/reference/gridapi.md#getaggridrowmodeltype) | `RowModelType` | Returns AG Grid Row Model Type |
| [getAllAgGridColumns()](https://www.adaptabletools.com/docs/reference/gridapi.md#getallaggridcolumns) | `Column<any>[]` | Return all AG Grid columns |
| [getAllRowNodes(config)](https://www.adaptabletools.com/docs/reference/gridapi.md#getallrownodes) | `IRowNode[]` | Retrieves all Row Nodes currently in the Grid (by default excluding the group rows) |
| [getCellDisplayValue(primaryKeyValue, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getcelldisplayvalue) | `any \| undefined` | Retrieves Display Value for a given cell |
| [getCellNormalisedValue(primaryKeyValue, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getcellnormalisedvalue) | `any \| undefined` | Retrieves Normalised Value for a given cell |
| [getCellRawValue(primaryKeyValue, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getcellrawvalue) | `any \| undefined` | Retrieves Raw Value for a given cell |
| [getCellRawValueCount(columnId, rawValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#getcellrawvaluecount) | `number` | Gets the count of the cells in a Column that have the given Raw Value |
| [getCellSummaryInfo()](https://www.adaptabletools.com/docs/reference/gridapi.md#getcellsummaryinfo) | [`CellSummmaryInfo`](https://www.adaptabletools.com/docs/reference/cellsummmaryinfo.md) | Returns summary info on Selected Cells |
| [getColumnCount()](https://www.adaptabletools.com/docs/reference/gridapi.md#getcolumncount) | `number` | Number of columns in the grid, including hidden columns. |
| [getColumnData(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getcolumndata) | `any[]` | Retrieves all the values for a single Column. |
| [getColumnSortForColumn(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getcolumnsortforcolumn) | [`ColumnSort`](https://www.adaptabletools.com/docs/reference/columnsort.md)` \| undefined` | Retrieves ColumnSort for a given Column |
| [getColumnSorts()](https://www.adaptabletools.com/docs/reference/gridapi.md#getcolumnsorts) | [`ColumnSort`](https://www.adaptabletools.com/docs/reference/columnsort.md)`[]` | Returns Column Sort information in AdapTable |
| [getDisplayedData()](https://www.adaptabletools.com/docs/reference/gridapi.md#getdisplayeddata) | `any[]` | Retrieves the displayed (formatted but not styled) data from the grid (filtered and sorted and visible columns only) |
| [getDisplayValueFromRawValue(rowNode, columnId, rawValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#getdisplayvaluefromrawvalue) | `string \| undefined` | Retrieves Formatted Value for a given Raw Value in given Column |
| [getDisplayValueFromRowNode(rowNode, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getdisplayvaluefromrownode) | `any \| undefined` | Retrieves Display Value for Cell in given Row and Column |
| [getDistinctColumnValues(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getdistinctcolumnvalues) | `any[]` | Retrieves the distinct raw values currently in a Column, sorted.<br/><br/>Useful when building dropdown options (e.g. Action Column `select`, Forms)<br/>from values that already exist in the Grid.<br/><br/>Returns an empty array if the Column is unknown. |
| [getFilteredColumnData(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getfilteredcolumndata) | `any[]` | Retrieves the filtered values for a single Column. |
| [getFilteredData()](https://www.adaptabletools.com/docs/reference/gridapi.md#getfiltereddata) | `any[]` | Retrieves filtered data from the grid |
| [getFirstDisplayedRowNode()](https://www.adaptabletools.com/docs/reference/gridapi.md#getfirstdisplayedrownode) | `IRowNode \| undefined` | Retrieves the first Displayed Row Node in AdapTable |
| [getFirstRowNode()](https://www.adaptabletools.com/docs/reference/gridapi.md#getfirstrownode) | `IRowNode \| undefined` | Retrieves the first Row Node in AdapTable |
| [getGridCellFromRowNode(rowNode, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getgridcellfromrownode) | [`GridCell`](https://www.adaptabletools.com/docs/reference/gridcell.md)` \| undefined` | Retrieves Cell in given Row and Column |
| [getGridCellsForDisplayValue(columnId, displayValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#getgridcellsfordisplayvalue) | [`GridCell`](https://www.adaptabletools.com/docs/reference/gridcell.md)`[] \| undefined` | Returns all the Grid Cells in a Column that have the given Display Value |
| [getGridCellsForRawValue(columnId, rawValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#getgridcellsforrawvalue) | [`GridCell`](https://www.adaptabletools.com/docs/reference/gridcell.md)`[] \| undefined` | Returns all the Grid Cells in a Column that have the given Raw Value |
| [getGridContainerElement()](https://www.adaptabletools.com/docs/reference/gridapi.md#getgridcontainerelement) | `HTMLElement \| null` | Returns the Grid Container in which the AdapTable Instance is present |
| [getGridData()](https://www.adaptabletools.com/docs/reference/gridapi.md#getgriddata) | `any[]` | Retrieves all data from the grid |
| [getGroupRowNodes(config)](https://www.adaptabletools.com/docs/reference/gridapi.md#getgrouprownodes) | `IRowNode[]` | Retrieves all Grouped Row Nodes currently in the Grid |
| [getInternalState()](https://www.adaptabletools.com/docs/reference/gridapi.md#getinternalstate) | `InternalState` | Returns the Internal section from AdapTable State |
| [getNormalisedValueFromRowNode(rowNode, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getnormalisedvaluefromrownode) | `any \| undefined` | Retrieves Normalised Value for Cell in given Row and Column |
| [getPrimaryKeyValueForRowNode(rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#getprimarykeyvalueforrownode) | `any` | Returns the Primary Key Value for a given Row Node |
| [getPrimaryKeyValuesForRowNodes(rowNodes)](https://www.adaptabletools.com/docs/reference/gridapi.md#getprimarykeyvaluesforrownodes) | `any[]` | Returns the Primary Key Values for a given Row Node collection |
| [getRawValueFromRowNode(rowNode, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getrawvaluefromrownode) | `any \| undefined` | Retrieves Raw Value for Cell in given Row and Column |
| [getRowCount()](https://www.adaptabletools.com/docs/reference/gridapi.md#getrowcount) | `number` | Number of data rows, excluding group rows. |
| [getRowNodeForIndex(rowIndex)](https://www.adaptabletools.com/docs/reference/gridapi.md#getrownodeforindex) | `IRowNode \| undefined` | Retrieves the displayed RowNode at the given index |
| [getRowNodeForPrimaryKey(primaryKeyValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#getrownodeforprimarykey) | `IRowNode` | Retrieves Row Node that contains given Primary Key |
| [getRowNodesForPrimaryKeys(primaryKeyValues)](https://www.adaptabletools.com/docs/reference/gridapi.md#getrownodesforprimarykeys) | `IRowNode[]` | Retrieves Row Nodes that contain given Primary Keys |
| [getSelectedCellInfo()](https://www.adaptabletools.com/docs/reference/gridapi.md#getselectedcellinfo) | [`SelectedCellInfo`](https://www.adaptabletools.com/docs/reference/selectedcellinfo.md) | Returns all current Selected Cells in AdapTable |
| [getSelectedRowInfo()](https://www.adaptabletools.com/docs/reference/gridapi.md#getselectedrowinfo) | [`SelectedRowInfo`](https://www.adaptabletools.com/docs/reference/selectedrowinfo.md) | Returns all current Selected Rows in AdapTable |
| [getVariant()](https://www.adaptabletools.com/docs/reference/gridapi.md#getvariant) | `AdaptableVariant` | Returns current AdapTable Variant: vanilla, angular, react, vue |
| [getVisibleColumnCount()](https://www.adaptabletools.com/docs/reference/gridapi.md#getvisiblecolumncount) | `number` | Number of columns that are currently visible. |
| [getVisibleColumnData(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#getvisiblecolumndata) | `any[]` | Retrieves the visible (filtered and sorted) values for a single Column. |
| [getVisibleData()](https://www.adaptabletools.com/docs/reference/gridapi.md#getvisibledata) | `any[]` | Retrieves visible data from the grid (filtered and sorted from visible columns only) |
| [getVisibleRowCount()](https://www.adaptabletools.com/docs/reference/gridapi.md#getvisiblerowcount) | `number` | Number of rows currently displayed, after filtering. |
| [getVisibleRowNodes(config)](https://www.adaptabletools.com/docs/reference/gridapi.md#getvisiblerownodes) | `IRowNode[]` | Retrieves all filtered Row Nodes currently in the Grid (i.e. after applying the current filter) |
| [highlightCell(cellHighlightInfo)](https://www.adaptabletools.com/docs/reference/gridapi.md#highlightcell) | `void` | Highlights a Cell in AdapTable |
| [highlightColumn(columnHighlightInfo)](https://www.adaptabletools.com/docs/reference/gridapi.md#highlightcolumn) | `void` | Highlights a Column in AdapTable |
| [highlightRow(rowHighlightInfo)](https://www.adaptabletools.com/docs/reference/gridapi.md#highlightrow) | `void` | Highlight a row using an adaptable style |
| [highlightRows(rowsHighlightInfo)](https://www.adaptabletools.com/docs/reference/gridapi.md#highlightrows) | `void` | Highlight rows using an adaptable style |
| [isCellEditable(gridCell)](https://www.adaptabletools.com/docs/reference/gridapi.md#iscelleditable) | `boolean` | Checks if given Grid Cell is editable |
| [isCellEdited(gridCell)](https://www.adaptabletools.com/docs/reference/gridapi.md#iscelledited) | `boolean` | Checks if given Grid Cell has been edited (uses Data Change History) |
| [isEveryCellEditable(gridCells)](https://www.adaptabletools.com/docs/reference/gridapi.md#iseverycelleditable) | `boolean` | Checks if all of given Grid Cells are editable |
| [isGrandTotalRowNode(rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#isgrandtotalrownode) | `boolean` | Whether given Row Node is a Grand Total Row |
| [isGridGroupable()](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridgroupable) | `boolean` | Whether AdapTable instance can be Row Grouped |
| [isGridInPivotMode()](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridinpivotmode) | `boolean` | Whether Grid is currently in Pivot Mode |
| [isGridPivotable()](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridpivotable) | `boolean` | Whether AdapTable instance can be pivoted |
| [isGridRangeSelectable()](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridrangeselectable) | `boolean` | Whether AdapTable instance offers cell range selection |
| [isGridRowGrouped()](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridrowgrouped) | `boolean` | Whether Grid is currently showing Row Groups |
| [isGridRowSelectable()](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridrowselectable) | `boolean` | Whether AdapTable instance offers row selection |
| [isGridRowSelected(primaryKeyValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#isgridrowselected) | `boolean` | Whether a Row is selected |
| [isGroupRowNode(rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#isgrouprownode) | `boolean` | Whether given Row Node is a Row Group |
| [isMasterDetailGrid()](https://www.adaptabletools.com/docs/reference/gridapi.md#ismasterdetailgrid) | `boolean` | Whether Grid is a Master Detail Grid |
| [isQuickFilterAvailable()](https://www.adaptabletools.com/docs/reference/gridapi.md#isquickfilteravailable) | `boolean` | Whether Quick Filter is available in the Grid |
| [isSummaryNode(rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#issummarynode) | `boolean` | Whether given Row Node is in a Summary Row |
| [isTreeDataGrid()](https://www.adaptabletools.com/docs/reference/gridapi.md#istreedatagrid) | `boolean` | Whether Grid displays a Tree Data (structured hierarchical data) |
| [isVisibleRowNode(rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#isvisiblerownode) | `boolean` | Whether given Row Node is visible |
| [jumpToCell(primaryKeyValue, columnId, rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#jumptocell) | `void` | Grid will jump to cell in a given Row and Column |
| [jumpToColumn(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#jumptocolumn) | `void` | Grid will jump to Column that has given ColumnId |
| [jumpToRow(primaryKeyValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#jumptorow) | `void` | Grid will jump to Row containing given Primary Key Value |
| [loadGridData(data)](https://www.adaptabletools.com/docs/reference/gridapi.md#loadgriddata) | `void` | Loads data into grid and fire a `RowChanged.trigger='Load'` event |
| [manageGridData(dataRowConfig, dataUpdateConfig)](https://www.adaptabletools.com/docs/reference/gridapi.md#managegriddata) | `Promise<\{ addedRows: IRowNode[]; updatedRows: IRowNode[]; removedRows: IRowNode[]; \}>` | Adds, Updates or Deletes rows in AdapTable (and AG Grid) in single transaction |
| [openGridInfoSettingsPanel()](https://www.adaptabletools.com/docs/reference/gridapi.md#opengridinfosettingspanel) | `void` | Opens Settings Panel with Grid Info section selected and visible |
| [redrawGrid()](https://www.adaptabletools.com/docs/reference/gridapi.md#redrawgrid) | `void` | Redraws AdapTable (expensive operation so use sparingly) |
| [refreshAllCells(forceUpdate)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshallcells) | `void` | Refreshes all Cells in the Grid |
| [refreshCell(rowNode, columnId, suppressFlash)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshcell) | `void` | Refresh a Cell Value in AdapTable |
| [refreshCells(rowNode, columnIds, suppressFlash)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshcells) | `void` | Refresh Cell Values in AdapTable |
| [refreshColumn(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshcolumn) | `void` | Refresh Column Values in AdapTable |
| [refreshColumns(columnIds)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshcolumns) | `void` | Refresh Columns Values in AdapTable |
| [refreshGridCell(gridCell)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshgridcell) | `void` | Refreshes a single Grid Cell |
| [refreshGridCells(gridCells)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshgridcells) | `void` | Refreshes a set of Grid Cells |
| [refreshGridHeader()](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshgridheader) | `void` | Forces a re-render of the Grid Header |
| [refreshGroupRowNodes()](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshgrouprownodes) | `void` | Forces a re-render of all Group Rows (including aggregations) |
| [refreshRowByPrimaryKey(primaryKey)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshrowbyprimarykey) | `void` | Forces a re-render of Row with given Primary Key value |
| [refreshRowNode(rowNode)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshrownode) | `void` | Forces a re-render of the given row |
| [refreshRowNodes(rowNodes)](https://www.adaptabletools.com/docs/reference/gridapi.md#refreshrownodes) | `void` | Forces re-render of given rows (if none provided, all rows are refreshed) |
| [removeAgGridColumnDefinition(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#removeaggridcolumndefinition) | `void` | Removes the Column Definition for a given Column. |
| [selectAll()](https://www.adaptabletools.com/docs/reference/gridapi.md#selectall) | `void` | Select the whole Grid |
| [selectCellRange(gridCellRange, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectcellrange) | `void` | Selects a group of cells in a given range - provide either primary keys or row indexes |
| [selectCellRangeByQuery(query, gridCellRange, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectcellrangebyquery) | `void` | Selects a group of cells in a given range using a query |
| [selectColumn(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectcolumn) | `void` | Selects a Column in AG Grid |
| [selectColumns(columnIds)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectcolumns) | `void` | Selects Columns in AG Grid |
| [selectNode(rowNode, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectnode) | `void` | Selects the AG Grid Row Node in AdapTable |
| [selectNodes(rowNodes, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectnodes) | `void` | Selects the AG Grid Row Nodes in AdapTable |
| [selectRow(primaryKeyValue, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectrow) | `void` | Selects Row with given Primary Key Value |
| [selectRows(primaryKeyValues, clearSelection)](https://www.adaptabletools.com/docs/reference/gridapi.md#selectrows) | `void` | Selects Rows with given Primary Key Values |
| [setAdaptableSorting(columnSorts)](https://www.adaptabletools.com/docs/reference/gridapi.md#setadaptablesorting) | `void` | Sorts AdapTable using given Column Sorts |
| [setAgGridColumnDefinitions(columnDefinitions)](https://www.adaptabletools.com/docs/reference/gridapi.md#setaggridcolumndefinitions) | `void` | Replaces the grid&#39;s column definitions. |
| [setCellValue(cellUpdateRequest)](https://www.adaptabletools.com/docs/reference/gridapi.md#setcellvalue) | `void` | Updates cell in AdapTable (as an AG Grid edit) |
| [setCellValues(cellUpdateRequests)](https://www.adaptabletools.com/docs/reference/gridapi.md#setcellvalues) | `void` | Updates multiple cells |
| [setRowGroupColumns(columnIds)](https://www.adaptabletools.com/docs/reference/gridapi.md#setrowgroupcolumns) | `void` | Sets the grid to Row Group |
| [showTransposedView(transposeConfig)](https://www.adaptabletools.com/docs/reference/gridapi.md#showtransposedview) | `void` | Opens a window with a transposed view of the grid. |
| [undoCellEdit(cellDataChangedInfo)](https://www.adaptabletools.com/docs/reference/gridapi.md#undocelledit) | `boolean` | Reverses a data change (if triggered by cell edit) |
| [unHighlightAllCells()](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightallcells) | `void` | Unhighlights all highlighted Cells in AdapTable |
| [unHighlightAllColumns()](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightallcolumns) | `void` | Unhighlights all highlighted Columns in AdapTable |
| [unHighlightAllRows()](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightallrows) | `void` | Remove all highlighted rows |
| [unHighlightCell(primaryKeyValue, columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightcell) | `void` | Unhighlights a Cell in AdapTable |
| [unHighlightColumn(columnId)](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightcolumn) | `void` | Unhighlights a Column in AdapTable |
| [unHighlightRow(primaryKeyValue)](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightrow) | `void` | Remove highlight from Row |
| [unHighlightRows(primaryKeyValues)](https://www.adaptabletools.com/docs/reference/gridapi.md#unhighlightrows) | `void` | Remove highlight from given Rows |
| [updateAgGridColumnDefinition(columnDefinition)](https://www.adaptabletools.com/docs/reference/gridapi.md#updateaggridcolumndefinition) | `void` | Merges non-stateful AG Grid column properties into an existing column definition. The column is matched by `colId`. A column that does not exist yet is added. |
| [updateAgGridColumnDefinitions(columnDefinitions)](https://www.adaptabletools.com/docs/reference/gridapi.md#updateaggridcolumndefinitions) | `void` | Merges non-stateful AG Grid column properties into the given column definitions. Each column is matched by `colId`. |
| [updateAgGridColumnState(columnState)](https://www.adaptabletools.com/docs/reference/gridapi.md#updateaggridcolumnstate) | `void` | Updates Ag Grid Column State for a given Column; use to update STATEFUL AG Grid Column props |
| [updateAgGridColumnStates(columnStates)](https://www.adaptabletools.com/docs/reference/gridapi.md#updateaggridcolumnstates) | `void` | Updates Ag Grid Column State for given Columns; use to update STATEFUL AG Grid Column props |
| [updateGridData(dataRows, config)](https://www.adaptabletools.com/docs/reference/gridapi.md#updategriddata) | `Promise<IRowNode[]>` | Updates AdapTable (and AG Grid) with rows that have changed |

---

## Row Changed Event

The Row Changed Event fires whenever rows are loaded, added, updated or deleted through the Grid API, or when a `Create`, `Clone`, `Edit` or `Delete` [Action Column Command](https://www.adaptabletools.com/docs/handbook-action-column-command/index.md) is used.

### RowChangedInfo

The event provides the [`RowChangedInfo`](https://www.adaptabletools.com/docs/reference/rowchangedinfo.md) object:

| Property | Type | Description |
| --- | --- | --- |
| [rowDataChange](https://www.adaptabletools.com/docs/reference/rowchangedinfo.md#rowdatachange) | [`RowDataChangedInfo`](https://www.adaptabletools.com/docs/reference/rowdatachangedinfo.md) | Rows that changed, and whether they were added, updated, deleted or loaded. |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/rowchangedinfo.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

`rowDataChange` is a [`RowDataChangedInfo`](https://www.adaptabletools.com/docs/reference/rowdatachangedinfo.md):

| Property | Type | Description |
| --- | --- | --- |
| [changedAt](https://www.adaptabletools.com/docs/reference/rowdatachangedinfo.md#changedat) | `number` | Timestamp of change occurrence (in milliseconds) |
| [dataRows](https://www.adaptabletools.com/docs/reference/rowdatachangedinfo.md#datarows) | `TData[]` | Data rows that have been added, updated, or deleted |
| [rowNodes](https://www.adaptabletools.com/docs/reference/rowdatachangedinfo.md#rownodes) | `IRowNode<TData>[]` | Row Nodes that were affected by this change |
| [rowTrigger](https://www.adaptabletools.com/docs/reference/rowdatachangedinfo.md#rowtrigger) | [`RowDataChangeTrigger`](https://www.adaptabletools.com/docs/reference/rowdatachangetrigger.md) | Trigger for row change: Load, Add, Update, or Delete |

`rowTrigger` is set by the Grid API function that made the change:

| Trigger | Grid API function |
| ------- | ----------------- |
| Load    | `loadGridData`    |
| Add     | `addGridData`     |
| Update  | `updateGridData`  |
| Delete  | `deleteGridData`  |

### Event Subscription

Subscribing to the Event is done the same way as with all [Adaptable Events](https://www.adaptabletools.com/docs/technical-reference-adaptable-events/index.md):

```ts
api.eventApi.on('RowChanged', (eventInfo: RowChangedInfo) => {
    // do something with the info
});
```

See [Listening to Cell and Row Changes](https://www.adaptabletools.com/docs/handbook-managing-grid-data-changed-events/index.md) for a worked example
