如何在ag网格中通过索引获取节点
How to get a node by index in ag-grid?
AgGrid希望将节点传递给它的许多数据函数。如何通过索引获取节点?看看下面的截图:
api.forEachNode(function(node){
api.refreshRows([node]);
})
我可以将node
参数传递给refreshRows()
函数,因为我是通过forEachNode()
获得它的。
如何在不迭代forEachNode()
的情况下通过索引获得节点?
这个问题可能有点晚了,但无论如何,对于未来正在搜索这个问题的人来说:
除了给出的答案外,您还可以通过以下方式获得行节点,
// Getting the row node by the row index
cont rowNode1 = api.getDisplayedRowAtIndex(rowIndex);
在某些情况下,上述方法不适用,因为当您对网格进行一些更改(排序、筛选等)时,rowIndex可能会发生更改。
另一种方法是使用行的id,即使排序、筛选。。。网格。
getRowNode(id):返回具有给定id的行节点。行节点id是您提供的回调getRowNodeId(data),否则,id是设置行数据时网格自动生成的数字。
// Getting rowNode by row id
const rowNode2 = api.getRowNode(rowId);
您可以使用getVirtualRow()
方法来获取单行。此函数是行模型的一部分。您可以通过getModel()
函数获得行模型。
var model = api.getModel();
console.log(model.getVirtualRow(idx));
基于@Charlie H的回答,API完全有可能在他使用的版本之后发生了一些变化。我使用的是(截至2017年12月的当前版本)15.0。我发现rowsToDisplay[]
包含一个可访问的行数组。例如,下面的操作正是你所认为的:
onCellEditingStarted: function (event) {
var displayModel = gridOptions.api.getModel();
var rowNode = displayModel.rowsToDisplay[event.rowIndex];
rowNode.setRowHeight(100);
gridOptions.api.onRowHeightChanged();
},
如果你想逐行迭代网格,你可以使用这个(其中$scope.grid是你的网格名称):
$scope.high_index = 0;
$scope.rows = [];
$scope.grid.api.forEachNode(function (node) {
$scope.rows[node.childIndex] = node.id;
if (node.childIndex > $scope.high_index)
$scope.high_index = node.childIndex;
});
for (i = 0; i <= $scope.high_index; i++) {
var node = $scope.grid.api.getRowNode($scope.rows[i]);
}
或者,如果您想要按子索引的行节点,现在可以使用(在上面设置$scope.rows之后):
var node = $scope.grid.api.getRowNode($scope.rows[i]);
我是你想要的行号。
相关文章:
- 在jQuery中获取表的行索引
- 在JavaScript中通过索引从对象数组中获取值
- Javascript获取所有锚链接的索引
- NodeJS在一个较大的字符串中获取一个字符串的索引
- angularjs$watch获取已更改数组项的索引
- Javascript Array 从特定索引获取偏移索引
- 使用名称 jQuery 按索引获取 ID 值
- 在jQuery中通过索引获取字典的键值
- 相同的类多次如何使用索引获取对象
- Boostrap 表:按行索引获取行数据
- 如何在ag网格中通过索引获取节点
- 使用对象哈希映射上的索引获取值
- 使用jQuery的索引获取表的偏移位置
- 如何通过索引获取jQueryUITabsDOM元素
- 使用Javascript通过索引获取HTML有序列表中的元素
- Jquery使用数组中的索引获取某些选择器的文本值
- 如何在javascript中使用索引获取对象的属性值
- 如何使用索引获取整个对象
- 如何通过元素的数据项索引获取元素
- 根据另一个数组的索引获取一个数组的值