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

标签 angularjs angular-ui-grid

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

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

 sort: {
    direction: uiGridConstants.DESC
 }  

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

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

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

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

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

最佳答案

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

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

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

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

关于angularjs - 将排序应用于网格时的 ui-grid scrollToFocus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31435818/

相关文章:

angularjs - 在 ui-grid AngularJS 中隐藏列标题

angularjs - 如何安装 Angular UI Grid 的不稳定版本?

javascript - Angular 和 UIGrid - 获取表数据

javascript - 如何使用 ng-repeat 遍历标记的内部内容而不是重复父项

javascript - Angularjs 数字过滤器无法与 ui 网格正常工作

javascript - 如何在 Angular/Javascript 中对街道地址进行排序

javascript - Angularjs 显示加载微调器

javascript - 使用 Angular ui 网格时如何在单击单元格时定位自定义上下文菜单?

javascript - AngularJS 模块上的括号使我的网页空白

javascript - 你如何检查 & 变量是否在指令中设置