2017-11-11 120 views
0

我与角UI电网工作。我正试图完成一些应该相当简单的事情,但是找不到任何有效的东西。所有我想要做的就是允许用户编辑网格,然后必须点击取消按钮的选项:尝试刷新角UI网格上取消编辑单击

<icon name="cancel" ng-disabled="$ctrl.canceldisabled" ng-click="$ctrl.cancelBSS()" size="20px" title="Cancel"></icon> 

该图标将会基本上刷新网格,或设置网格单元恢复到上次保存值。会不会只是在这种情况下,电网工作的一个简单的刷新:

public cancelBSS() { 
     ctrl.gridApi.grid.refresh(); 
    }; 

我试过最API选项 - notifyDataChange,我已经尝试重置gridOptions.data恢复到上次保存的状态,但都不要什么都不做。 没有什么变化。

回答

1

你可以尝试保存属性oldValue上开始单元格编辑,然后在单击按钮恢复:

$scope.gridOptions.onRegisterApi = function(gridApi) { 
    gridApi.edit.on.beginCellEdit(null, function (rowEntity, colDef, newValue, oldValue) {      
     $scope.savedCell = { 
      entityHashKey: rowEntity.$$hashKey, 
      field: colDef.field, 
      value: rowEntity[colDef.field] 
     } 
    }); 
} 

$scope.cancelEdit = function() { 
    var row = $scope.gridApi.grid.rows.find(function(row) { 
     if($scope.savedCell != null) 
      return row.entity.$$hashKey == ctrl.savedValue.entityHashKey; 
    }) 
    if(row == undefined) 
     return; 
    row.entity[$scope.savedCell.field] = $scope.savedCell.value; 
} 
+0

这是伟大的,谢谢。唯一改变的是“colDef.field”实际上是“colDef.name”,并且在if条件中更新为“ctrl.savedCell.entityHashKey”。欣赏输入! – bschmitty