Ag grid ag grid:自动从当前选定行中选择下一行

Ag grid ag grid:自动从当前选定行中选择下一行,ag-grid,Ag Grid,我在一个常规项目中使用ag网格 我正在尝试使用“下一步”按钮来选择网格中的下一行 $scope.NextButtonClick = function (){ console.log("next button clicked"); var selectedNodes = $scope.gridOptions.api.getSelectedNodes(); var indexCurrentSelection = selectedNodes[0].childIndex; 我希

我在一个常规项目中使用ag网格

我正在尝试使用“下一步”按钮来选择网格中的下一行

$scope.NextButtonClick = function (){
    console.log("next button clicked");
    var selectedNodes = $scope.gridOptions.api.getSelectedNodes();
    var indexCurrentSelection = selectedNodes[0].childIndex;
我希望能有这样的功能

    var nextNode = MagicalStoreOfallNodes.getNodeByIndex(indexCurrentSelection + 1);
    nextNode.setSelected(true, true)
但是我在文档中找不到任何东西

非常感谢您的帮助


假设您的
行选择:'single
(如果是'multiple',我想您的问题没有意义),您可以这样做:

$scope.nextRecord = function () {
    let selectedNodes = $scope.gridOptions.api.getSelectedNodes();
    if (selectedNodes && selectedNodes.length === 1) {
        let selectedNode = selectedNodes[0];
        $scope.gridOptions.api.forEachNode((node) => {
            if (node.childIndex === (selectedNode.childIndex + 1)) {
                node.setSelected(true);
                return;
            }
        });
    }
};

但请注意,这是一个简单的版本-如果您使用的是筛选,您可能需要使用forEach的其他版本,或者如果您使用的是分组,您可能需要检查它是否为父级,并相应地采取行动

它无法正常工作!因为在您第一次选择nextElement之后,您有两个选定的元素,因此在此之后它将不起作用。您应该使用node.setSelected(true,true);第二个true将取消选择所有选定的节点,然后选择当前节点,这样在最新版本中就不再有childIndex了。你应该用rowIndex来代替它