[英]How to disable saveRow event ui-grid
我正在使用ui-grid在UI中顯示我的表。 我有一個要求,我不希望表自動保存數據。 我希望用戶編輯表格中的所有數據,然后單擊按鈕更新所有編輯的數據。
上面的行為工作正常,但只有我得到的問題是每當用戶在一行中編輯一個單元格,幾秒鍾后,該單元格變為灰色且無法編輯。 在瀏覽器cnsole上我收到此錯誤:
引發saveRow事件時沒有返回promise,無論是沒有人正在偵聽事件,還是事件處理程序沒有返回promise
由於上面的JS錯誤,整行變得不可編輯。 除非我點擊我的按鈕,否則如何告訴ui-grid不保存數據。
如果我處理saveRow事件,那么我的按鈕不起作用。 請幫助我這方面。
以下是相關代碼的片段:
var grid = {
data : 'hwData['+key+']',
paginationPageSizes: [25, 50, 75],
paginationPageSize: 25,
enableGridMenu: true,
enableFiltering: true,
enableSelectAll: true,
enableColumnResize : true,
exporterCsvFilename: 'myFile.csv',
exporterMenuPdf: false,
exporterCsvLinkElement: angular.element(document.querySelectorAll(".custom-csv-link-location")),
onRegisterApi: function(gridApi){
$scope.gridApi.push(gridApi);
gridApi.edit.on.afterCellEdit($scope,function(rowEntity, colDef, newValue, oldValue){
if(oldValue == newValue){
return false;
}
$("#test").prepend('<font color= "red"> ' +colDef.name+ 'Edited ');
})
},
..............some more code
..............
$.ajax({
type:'POST',
url:'/HardwareInventory/ajax/storage/edit_owned_storage',
data: jsonHostNames,
dataType:"json",
contentType: "application/json; charset=utf-8",
success : function(result){
if(result.status == "Success"){
location.reload(true);
}else{
bootbox.alert("Either hostname is not correct or you don't have permission to edit this team's data");
}
},
statusCode: {
500: function(){
alert("Oops!, there has been an internal error");
}
},
complete: function(result){
}
});
}
});
在網格選項中設置“rowEditWaitInterval:-1” ,默認情況下它永遠不會調用saveRow方法,因此您可以在自定義方法中保存修改后的數據。 你可以訪問這樣的污垢
var dirtyRows = $scope.gridApi.rowEdit.getDirtyRows($scope.gridApi.grid);
@Jha:看看下面的url,我剛剛添加了假保存方法,除非你在其中定義你的保存功能,否則不會保存任何數據。 http://plnkr.co/edit/T0TLGLpLsk25vY6SUnzR?p=preview
//保存每一行數據
gridApi.rowEdit.on.saveRow($scope, $scope.saveRow);
$scope.saveRow = function (rowEntity) {
var promise = $q.defer();
$scope.gridApi.rowEdit.setSavePromise(rowEntity, promise.promise);
promise.resolve();
};
上面的代碼將解決您的錯誤“在引發saveRow事件時沒有返回承諾,沒有人正在偵聽事件,或者事件處理程序沒有返回承諾”。 不要忘記在控制器功能中添加“$ q”。 我希望你的保存功能也能正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.