如何在ag-grid中指定RowNode.id

时间:2018-03-22 21:14:43

标签: ag-grid ag-grid-ng2

我在这里张贴这个,因为今天浪费了我相当多的时间。

我试图将RowNode.id设置为我设置的属于rowData属性的对象中的数据。意思是,我想在我的数据模型上使用一个属性来提供ag-grid的行模型的内置id字段。他们提到这是文档,但没有解释如何做到这一点。

3 个答案:

答案 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时,必须遵守以下规则:

  1. ID必须是唯一的
  2. ID不得更改

如果您打算用作ID的属性不是唯一的或已更改,它将在网格中引起未指定的行为。换句话说,请勿使用非唯一或可更改的字段。

如果使用行分组,则网格将始终为组级别分配ID(因为应用程序提供的行数据没有一对一的映射)。回调getRowNodeId()仅用于非组级别的行。

Here's a link to documentation

答案 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);

这里是link to documentation