【问题标题】:ag-grid: prorgamatically select next row from currently selected rowag-grid:以编程方式从当前选定行中选择下一行
【发布时间】:2017-03-03 18:48:09
【问题描述】:

我在 anugular1 项目中使用 ag-grid。

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

$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)

但我在文档https://www.ag-grid.com/javascript-grid-model/ 中找不到任何内容

非常感谢任何帮助!

【问题讨论】:

    标签: ag-grid


    【解决方案1】:

    假设你的rowSelection:'single(我猜你的问题如果是“多个”就没有意义了),你可以这样做:

    $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 将取消选择所有 selectedNodes 并在选择当前节点后
    • 此外,我们在最新版本中不再有 childIndex。你应该使用 rowIndex 而不是那个
    猜你喜欢
    • 2018-01-23
    • 2019-03-21
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2018-02-14
    • 2018-10-27
    • 2020-11-08
    • 2015-11-01
    相关资源
    最近更新 更多