我正在使用ui-grid作为网格。我想创建一个网格,其中包含数据库中的一些列和一个按钮的额外列。
$scope.studentgrid = {
data: 'students',
enableFiltering: false,
onRegisterApi: function(gridApi){
$scope.gridApi = gridApi;
$scope.gridApi.grid.registerRowsProcessor( $scope.singleFilter, 200 );
},
enableRowSelection: true,
multiSelect: false,
enableColumnResizing: true,
enableSelectAll:true,
enableCellEdit: false,
enableFullRowSelection: true,
enableCellEditOnFocus: false,
columnDefs: [
{ field: 'ID'},
{ field: 'name'},
{ field: 'age' },
{ field: 'email', displayName: 'Email(Sorting Disabled)', enableSorting: false },
{ field: 'Change', cellTemplate: '<div><button ng-click="grid.appScope.genalert()">Click Here</button></div>'}
]
};
在ui-grid中,我在事件rowSelectionChanged
$scope.studentgrid.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function (row) {
alert(row.isSelected);
});
};
每次单击按钮时,rowSelectionChanged事件都会触发。当我点击按钮时,如何停止触发rowSelectionChanged事件?我需要enableFullRowSelection为真。
答案 0 :(得分:0)
我还没有办法吞下rowSelectionChanged
事件。我确实找到了解决它的方法,这在你的特定情况下可能有用,也可能没用。在我的情况下,我在rowSelectionChange上发生了一个特定的操作,我希望在单击按钮时防止发生这种情况。如果这对你有用,我就是这样做的。
更改您的cellTemplate以包含buttonClicked布尔值:
cellTemplate: '<div><button ng-click="grid.appScope.buttonClicked = true;grid.appScope.genalert()">Click Here</button></div>'
然后在你的rowSelectionChanged声明中:
gridApi.selection.on.rowSelectionChanged($scope, function (row) {
if (!this.grid.appScope.buttonClicked) {
alert(row.isSelected);
}
this.grid.appScope.buttonClicked = false;
});