AngularJS ui-grid 在使用 enableFullRowSelection 时将列排除在 select 行之外
AngularJS ui-grid Exclude column from being able to select row when using enableFullRowSelection
有没有办法将列排除在 select 行之外?在下面的示例中,我想让年龄列无法 select 该行。
http://plnkr.co/edit/OFoJydRpzoKAGBw3Tfzw?p=preview
$scope.gridOptions = { enableFullRowSelection: true, enableRowHeaderSelection: false };
$scope.gridOptions.columnDefs = [
{ name: 'id' },
{ name: 'name'},
{ name: 'age', displayName: 'Age (not focusable)', allowCellFocus : false },
{ name: 'address.city' }
];
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.modifierKeysToMultiSelect = false;
$scope.gridOptions.noUnselect = true;
$scope.gridOptions.onRegisterApi = function( gridApi ) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope,function(row){
var msg = 'row selected ' + row.isSelected;
$scope.callMe(row.entity);
});
};
尝试使用自定义 cellTemplate,您可以在其中以自定义方式处理单元格点击(忽略点击,或立即取消选择行)。
如前所述,您需要使用自定义单元格模板并禁用事件传播。
按照您的代码,单元格模板应为:
cellTemplate: '<div class=\"ui-grid-cell-contents\" ng-click="$event.stopPropagation()">{{row.entity.age}}</div>'
有没有办法将列排除在 select 行之外?在下面的示例中,我想让年龄列无法 select 该行。
http://plnkr.co/edit/OFoJydRpzoKAGBw3Tfzw?p=preview
$scope.gridOptions = { enableFullRowSelection: true, enableRowHeaderSelection: false };
$scope.gridOptions.columnDefs = [
{ name: 'id' },
{ name: 'name'},
{ name: 'age', displayName: 'Age (not focusable)', allowCellFocus : false },
{ name: 'address.city' }
];
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.modifierKeysToMultiSelect = false;
$scope.gridOptions.noUnselect = true;
$scope.gridOptions.onRegisterApi = function( gridApi ) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope,function(row){
var msg = 'row selected ' + row.isSelected;
$scope.callMe(row.entity);
});
};
尝试使用自定义 cellTemplate,您可以在其中以自定义方式处理单元格点击(忽略点击,或立即取消选择行)。
如前所述,您需要使用自定义单元格模板并禁用事件传播。 按照您的代码,单元格模板应为:
cellTemplate: '<div class=\"ui-grid-cell-contents\" ng-click="$event.stopPropagation()">{{row.entity.age}}</div>'