I'm posting this here because this wasted a fair bit of my time today.
I was trying to set the RowNode.id
from the data in the objects I set aggrid's rowData
property to. meaning, I wanted to use a property on my data model to supply the built in id
field of ag-grid's row model. They mention this in the documentation but they don't explain how to do itp.
To get ag-grid to use application assigned IDs, implement the grid callback getRowNodeId(). The callback should return back the ID for a particular piece of row data. For example, the following code snippet returns back the value of attribute 'id' for the supplied data item:
function getRowNodeId(data) {
return data.id;
}
When providing IDs the following rules must be obeyed:
If the attribute you are intending to use as an ID is either not unique or changes, it will cause unspecified behaviour in the grid. In other words, don't use a field that is not unique or can change.
If using Row Grouping, the grid will always assign IDs for the group level (as there is not a one-to-one mapping with application-supplied row data). The callback getRowNodeId() is only used for non-group level rows.