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

dub*_*ubs 3 angularjs angular-ui-grid

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

问题似乎集中在排序方向上:

 sort: {
    direction: uiGridConstants.DESC
 }  
Run Code Online (Sandbox Code Playgroud)

如果我不这样做,那么它会按预期工作。我只能假设行号是数据在排序之前的行,并且不考虑任何“后”排序。

这是问题的一个示例:http : //plnkr.co/edit/beWci0?p=preview

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

关于如何根据排序结果考虑行位置的任何想法?

它是从这里整理示例的地方整理而来的:http : //ui-grid.info/docs/#/tutorial/202_cellnav

Kat*_*hir 5

如果要选择网格中的第一行而不考虑排序和筛选,则必须查看可见行,ui-grid不会呈现数据数组中的所有行。因此可见行的数量可能少于实际数据行。

要选择第一行,您可以执行以下操作:

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

这将选择第一可见行并将焦点设置在第三列。请点击此处http://plnkr.co/edit/gWlY68?p=preview