如何访问Angular UI网格中已排序的行

How to access the sorted rows in an Angular UI Grid?

本文关键字:网格 排序 UI Angular 何访问 访问      更新时间:2023-09-26

我正在使用Angular UI网格来显示一些数据。启用并初始化排序以及选择单行:

vm.gridOptions = {
    enableSorting: true,
    enableRowSelection: true,
    multiSelect: false,
    noUnselect: true,
    columnDefs: [
        { name: '#', field: 'ID' },
        { name: 'Name', field: 'CODE', sort: { direction: 'asc', priority: 1 } },
        { name: 'Comment', field: 'DESCR' },
    ],
    data: []
};

我可以选择一行,行按照配置按"名称"列升序排序。

如UI网格教程210所示,我添加了逻辑,以便在我的数据加载并添加到网格后自动选择第一个项目:

datacontext.getAllGcTab(vm.filter).then(function (result) {
    vm.gridOptions.data = result.results;
    vm.gridApi.selection.selectRow(vm.gridOptions.data[0]);
});

但此代码选择的是未排序数据的第一项。我的网格中大约有500个项目,数量不多,性能也很好,但在这种情况下,所选项目位于行的某个位置,不可见。

是否有任何选项可以直接访问UI网格的行或排序数据?

我知道外部排序可以解决这个问题,因为这样我就会将已经排序的数据分配给网格。但在我看来,这似乎是一种不必要的开销。。。

$scope.gridApi.core.getVisibleRows()按当前排序/筛选顺序返回一个行数组。