2017-11-11 7 views
0

私は角度uiグリッドで作業しています。私はかなりシンプルでなければならないものを達成しようとしていますが、動作するものは何も見つかりません。このアイコンは、その後、基本的に保存され、その最後に、グリッドセルをバックグリッドをリフレッシュする、または設定しますキャンセル時に角型Uiグリッドをリフレッシュしようとしています。クリック編集

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

:私がやりたいすべてはユーザーがグリッドを編集して、キャンセルボタンをクリックするオプションを持つことができるようです値。グリッドこの場合、仕事だけではなく、単純なリフレッシュになります。私は、ほとんどのAPIオプションを試してみた

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

- notifyDataChange、私はその最後に保存された状態が、両方のドンに戻っgridOptions.dataをリセットしようとしました何もしない。 変更はありません。あなたは、セルの編集を開始し、ボタンのクリックで、それを復元する上でOLDVALUEを保存しようとすることができます

答えて

1

$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

関連する問題