我在这里发布这个是因为这浪费了我今天相当多的时间。
我试图RowNode.id
从我设置 agggrid 的rowData
属性的对象中的数据中设置。意思是,我想在我的数据模型上使用一个属性来提供 ag-grid 行模型的内置id
字段。他们在文档中提到了这一点,但没有解释如何做。
我在这里发布这个是因为这浪费了我今天相当多的时间。
我试图RowNode.id
从我设置 agggrid 的rowData
属性的对象中的数据中设置。意思是,我想在我的数据模型上使用一个属性来提供 ag-grid 行模型的内置id
字段。他们在文档中提到了这一点,但没有解释如何做。
要让 ag-grid 使用应用程序分配的 ID,请实现网格回调 getRowNodeId()。回调应返回特定行数据的 ID。例如,以下代码片段返回所提供数据项的属性“id”的值:
function getRowNodeId(data) {
return data.id;
}
提供 ID 时必须遵守以下规则:
如果您打算用作 ID 的属性不是唯一的或发生更改,则会导致网格中出现未指定的行为。换句话说,不要使用不唯一或可以更改的字段。
如果使用行分组,网格将始终为组级别分配 ID(因为不存在与应用程序提供的行数据的一对一映射)。回调 getRowNodeId() 仅用于非组级别的行。
这个问题的答案是您需要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.
}
他们实际上不仅提到它,而且还有一个很好的例子:
// 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);
这是文档的链接。