我想要所选行的索引/索引值,用ui-grid。 我试图使用onRowSelectionChange事件来获取它。但无法得到它。
任何人都可以对此有任何想法吗?
答案 0 :(得分: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);
请注意,重新排序或更改数据时,此索引会发生更改。它基于用户看到的数据索引。
答案 1 :(得分: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
实际上是您提供给网格的数据。