如何取消 Angular ui-grid 中的单元格编辑?
How to cancel cell editing in Angular ui-grid?
我在 beginCellEdit 事件中有一些条件
gridApi.edit.on.beginCellEdit($scope, function(rowEntity, colDef, event) {
var scope = angular.element(event.currentTarget).scope();
var selectedRowIndex = scope.rowRenderIndex;
var selectedColumnName = scope.col.name;
if ($scope.gridOptions.data[selectedRowIndex-1][selectedColumnName].trim()=='') {
alert("You cannot enter the value in this cell");
// At this place I want to cancel edit and return focus to grid
}
})
是否有任何 preventDefault 或类似的方法可以轻松取消单元格编辑并 return 聚焦到网格。
谢谢!
您可以查看此 plunker 示例以获得条件可编辑字段。
控制器:
var cellEditable = function($scope){
if($scope.row.entity.oldId4===undefined)
return false;
return $scope.row.entity.oldId4!=$scope.row.entity.id4;
}
Gridoptions -> columnDefs:
cellEditableCondition : cellEditable
另一种方法是像这样广播 IUiGridEditContants.events.END_CELL_EDIT 事件:
scope.$broadcast("uiGridEventEndCellEdit");
唯一的缺点是它会关闭所有处于编辑模式的单元格。
仅供参考:以下内容对我不起作用:
gridApi.rowEdit.setRowsClean([gridRow.entity]);
我在 beginCellEdit 事件中有一些条件
gridApi.edit.on.beginCellEdit($scope, function(rowEntity, colDef, event) {
var scope = angular.element(event.currentTarget).scope();
var selectedRowIndex = scope.rowRenderIndex;
var selectedColumnName = scope.col.name;
if ($scope.gridOptions.data[selectedRowIndex-1][selectedColumnName].trim()=='') {
alert("You cannot enter the value in this cell");
// At this place I want to cancel edit and return focus to grid
}
})
是否有任何 preventDefault 或类似的方法可以轻松取消单元格编辑并 return 聚焦到网格。
谢谢!
您可以查看此 plunker 示例以获得条件可编辑字段。
控制器:
var cellEditable = function($scope){
if($scope.row.entity.oldId4===undefined)
return false;
return $scope.row.entity.oldId4!=$scope.row.entity.id4;
}
Gridoptions -> columnDefs:
cellEditableCondition : cellEditable
另一种方法是像这样广播 IUiGridEditContants.events.END_CELL_EDIT 事件:
scope.$broadcast("uiGridEventEndCellEdit");
唯一的缺点是它会关闭所有处于编辑模式的单元格。
仅供参考:以下内容对我不起作用:
gridApi.rowEdit.setRowsClean([gridRow.entity]);