ui-grid scrollToFocus 当排序应用于网格时

ui-grid scrollToFocus when sorting is applied to the grid

我在尝试使用 scrollToFocus 方法将焦点设置在网格的第一行时遇到问题。

问题似乎与排序方向有关:

 sort: {
    direction: uiGridConstants.DESC
 }  

如果我忽略它,它就会按预期工作。我只能假设行号是排序前的数据行,并且不考虑任何 'post' 排序。

下面是问题示例:http://plnkr.co/edit/beWci0?p=preview

您会看到,当单击 select 第一行时,它实际上会转到另一行 - 网格绑定到的数据集中的第一行。

关于如何根据排序结果考虑行位置有什么想法吗?

它是通过删减此处的示例拼凑而成的:http://ui-grid.info/docs/#/tutorial/202_cellnav

如果你想 select 网格中的第一行而不考虑排序和过滤,你将不得不查看可见行,ui-网格不会呈现网格中的所有行数据数组。所以可见行数可能少于实际数据行数。

到select第一行你可以做以下操作,

$scope.scrollToFocus = function( rowIndex, colIndex ) {
   var row = $scope.gridApi.grid.getVisibleRows()[rowIndex].entity;
  $scope.gridApi.cellNav.scrollToFocus( row, $scope.gridOptions.columnDefs[colIndex]);
};

这将 select 第一个可见行并将焦点设置在第三列。 在这里Plnkr http://plnkr.co/edit/gWlY68?p=preview