Сетка пользовательского интерфейса получает индекс выбранной строки

0

Мне нужно значение index/index для выбранной строки в ui-grid. Я попытался получить его, используя событие onRowSelectionChange. Но он не смог его получить.

Может ли кто-нибудь иметь представление об этом?

Теги:
angular-ui-grid

2 ответа

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

Обратите внимание, что этот индекс изменяется при повторной сортировке или изменении данных. Он основан на индексе данных, как видит пользователь.

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 - это фактически данные, которые вы предоставили сетке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню