我在这里张贴这个,因为今天浪费了我相当多的时间。
我试图将RowNode.id
设置为我设置的属于rowData
属性的对象中的数据。意思是,我想在我的数据模型上使用一个属性来提供ag-grid的行模型的内置id
字段。他们提到这是文档,但没有解释如何做到这一点。
答案 0 :(得分:1)
这个问题的答案是你需要在网格的网格选项对象上设置getRowNodeId
属性,如下所示:
// where 'd' is an object in your model
this.gridOptions.getRowNodeId = d => {
return d.id; // return the property you want set as the id.
}
答案 1 :(得分:1)
要使ag-grid使用应用程序分配的ID,请实现网格回调getRowNodeId()。回调应返回特定行数据的ID。例如,以下代码片段返回所提供数据项的属性“ id”的值:
function getRowNodeId(data) {
return data.id;
}
提供ID时,必须遵守以下规则:
如果您打算用作ID的属性不是唯一的或已更改,它将在网格中引起未指定的行为。换句话说,请勿使用非唯一或可更改的字段。
如果使用行分组,则网格将始终为组级别分配ID(因为应用程序提供的行数据没有一对一的映射)。回调getRowNodeId()仅用于非组级别的行。
答案 2 :(得分:0)
他们实际上不仅提到它,而且还有一个很好的例子:
// callback tells the grid to use the 'id' attribute for id's
// id's should always be strings
gridOptions.getRowNodeId = function(data) {
return data.id;
};
// get the row node with ID 55
var rowNode = api.getRowNode('55');
// do something with the row, eg select it
rowNode.setSelected(true);