UI网格获取选定行的索引

时间:2015-10-01 09:12:36

标签: angularjs angular-ui-grid

我想要所选行的索引/索引值,用ui-grid。 我试图使用onRowSelectionChange事件来获取它。但无法得到它。

任何人都可以对此有任何想法吗?

2 个答案:

答案 0 :(得分:4)

现在可能有一个更优雅的解决方案,但在我几个月前使用的ui-grid版本中,我使用以下服务函数来获取行索引。

getRowIndex: function (row, grid) {
    var rowIndex = -1;
    for (var i = 0; i < grid.renderContainers.body.visibleRowCache.length; i++) {
        if (row.uid === grid.renderContainers.body.visibleRowCache[i].uid) {
            rowIndex = i;
            break;
        }
    }
    return rowIndex;
}

您可以从许多事件中获取对该行的引用,包括rowSelectionChanged事件。

获取对网格的引用......

$scope.gridOptions.onRegisterApi = function (gridApi) {
    $scope.gridApi = gridApi;
}

并致电

var myIndex = myService.getRowIndex(row, $scope.gridApi.grid);

请注意,重新排序或更改数据时,此索引会发生更改。它基于用户看到的数据索引。

答案 1 :(得分:3)

在控制器grid_options中设置:

onRegisterApi: function(gridApi) {
                $scope.gridApi = gridApi;
                gridApi.selection.on.rowSelectionChanged($scope,function(row){
                 var removeRowIndex = $scope.grid_Options.data.indexOf(row.entity);
                });
               }

$scope.grid_Options.data实际上是您提供给网格的数据。