如何通过ag-grid中的索引获取节点?

Cha*_*lie 3 javascript angularjs ag-grid

AgGrid希望将节点传递给它的许多数据函数.你如何通过索引获得节点?看下面的剪辑:

api.forEachNode(function(node){
   api.refreshRows([node]);
})
Run Code Online (Sandbox Code Playgroud)

我可以将node参数传递给refreshRows()函数,因为我正在通过它forEachNode().

如何通过索引获取节点而不进行迭代forEachNode()

Cha*_*lie 8

您可以使用getVirtualRow()方法获取单行.此函数是行模型的一部分.您可以按getModel()功能获取行模型.

var model = api.getModel();
console.log(model.getVirtualRow(idx));
Run Code Online (Sandbox Code Playgroud)


Sen*_*nal 7

对于这个问题来说可能有点晚了,但是对于以后正在寻找这个问题的人而言:

除了给出答案外,您还可以通过以下方式获得行节点,

// Getting the row node by the row index
cont rowNode1 = api.getDisplayedRowAtIndex(rowIndex);
Run Code Online (Sandbox Code Playgroud)

在某些情况下,上述方法不合适,因为在对网格进行某些更改(排序,过滤器等)时,rowIndex可能会更改。
另一种方法是使用该行的id,即使您对网格进行排序,过滤也不会改变。

getRowNode(id):返回具有给定ID的行节点。行节点ID是您通过回调getRowNodeId(data)提供的ID,否则,ID是设置行数据时由网格自动生成的数字。

// Getting rowNode by row id
const rowNode2 = api.getRowNode(rowId);
Run Code Online (Sandbox Code Playgroud)

  • 感谢您建议如果用户更改显示顺序,`idx` 将不准确。请继续并将其添加到我的答案中。 (3认同)