限制 ng-grid 中所选项目的数量
Limit number of selected items in ng-grid
有没有办法限制在 ng-grid 中选择的项目数?
我没有找到 设置 来执行此操作,因此我试图使用 gridOptions.selectedItems
中的 watchCollection
来阻止它。
当 selectItems
的 length
大于 5 时,我尝试 取消选择 最后一个选择但没有按预期工作,因为项目行索引似乎与呈现的不同:
这是观察者代码:
$scope.$watchCollection('gridOptions.selectedItems', function (newVal, oldVal) {
if ($scope.gridOptions.selectedItems.length > 5) {
for (var i = 0; i < $scope.importableFilesData.length; i++) {
if ($scope.importableFilesData[i] === newVal[0]) {
$scope.gridOptions.selectRow(i, false);
}
}
}
这样检查你的情况。因此,您不必搜索最后选择的行,您可以直接取消选择它。我已经测试过它并且正在以这种方式工作。
$scope.yourGridApi.selection.on.rowSelectionChanged($scope,function(row){
if($scope.yourGrid.gridOptions.selectedItems.length>=5){
row.isSelected = false;
}
});
我找到了使用 beforeSelectionChange
属性 的解决方案。 属性 让您可以设置每次选择一行时触发的回调。如果你的returnfalse
,选择将被取消
$scope.gridOptions = {
// your grid options ...
beforeSelectionChange: function (row) {
if ($scope.gridOptions.selectedItems.length > 5) {
return false;
}
return true;
}
}
有没有办法限制在 ng-grid 中选择的项目数?
我没有找到 设置 来执行此操作,因此我试图使用 gridOptions.selectedItems
中的 watchCollection
来阻止它。
当 selectItems
的 length
大于 5 时,我尝试 取消选择 最后一个选择但没有按预期工作,因为项目行索引似乎与呈现的不同:
这是观察者代码:
$scope.$watchCollection('gridOptions.selectedItems', function (newVal, oldVal) {
if ($scope.gridOptions.selectedItems.length > 5) {
for (var i = 0; i < $scope.importableFilesData.length; i++) {
if ($scope.importableFilesData[i] === newVal[0]) {
$scope.gridOptions.selectRow(i, false);
}
}
}
这样检查你的情况。因此,您不必搜索最后选择的行,您可以直接取消选择它。我已经测试过它并且正在以这种方式工作。
$scope.yourGridApi.selection.on.rowSelectionChanged($scope,function(row){
if($scope.yourGrid.gridOptions.selectedItems.length>=5){
row.isSelected = false;
}
});
我找到了使用 beforeSelectionChange
属性 的解决方案。 属性 让您可以设置每次选择一行时触发的回调。如果你的returnfalse
,选择将被取消
$scope.gridOptions = {
// your grid options ...
beforeSelectionChange: function (row) {
if ($scope.gridOptions.selectedItems.length > 5) {
return false;
}
return true;
}
}