How do I specify the RowNode.id in ag-grid

Jason Wall picture Jason Wall · Mar 22, 2018 · Viewed 10.7k times · Source

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.

Answer

Kiril Matev picture Kiril Matev · Aug 21, 2020

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:

  1. IDs must be unique
  2. IDs must not change

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.

Here's a link to documentation