javascript - 将表中的多行保存到后端 SAPUI5

标签 javascript sapui5

我在将多行保存到后端时遇到问题。我不知道如何批量发送所有行,因此我尝试一次发送每一行,但它在将最后一行放入 oEntry 后命中。

submitButtonPress: function() {
var oModel = this.getModel();
var hasChanges = oModel.hasPendingChanges();

if (hasChanges) {
    var mcJson = {};
            //get only rows with changes
    var modelChanges = oModel.getPendingChanges();
    mcJson = modelChanges;

    var mcJsonLength = Object.keys(mcJson).length;
    var mcJsonKey = Object.keys(mcJson);
    var officeCode = this.byId("officeCombo").getValue();
    var oEntry = {};

   //for each row get data
for (var i = 0; i < mcJsonLength; i++) {
    var item = mcJsonKey[i];
    var obj = modelChanges[item];
    var estDate = this.convertDate(obj.ESTIMATE_DATE);

            oEntry.MRU_ID = obj.EST_MRU_ID.toString();
    oEntry.ESTIMATE_PRCT = obj.ESTIMATE_PRCT;
    oEntry.INSTALL_READ = obj.INSTALL_READ;
    oEntry.PLAN_ESTIMATE = obj.EST_INSTALL;
    oEntry.MRU_DATE = estDate;
    oEntry.OFFICE_CODE = officeCode.toString();*/


oModel.create("/MRU_ESTSet", oEntry, {
    success: function(oData, response) {
       sap.m.MessageBox.alert("MRU: " + oEntry.MRU_ID + " EST DATE:" + oEntry.MRU_DATE + " SAVED!");},
error: function(oError) {
    sap.m.MessageBox.alert("Error Saving Entries!!");
}
});

}
} else {
sap.m.MessageBox.alert("No Changes To Submit");
}

}

最佳答案

如果您使用的是 oDataModel V2,那么您可以简单地执行以下操作:

oModel.submitChanges() 

这将批量发送对模型所做的所有更改。

submitChanges method documentation

关于javascript - 将表中的多行保存到后端 SAPUI5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48549023/

相关文章:

javascript - Infragistics webdropdown SelectedItemIndex 问题

javascript - 如果购物车中的数量发生变化,如何更新价格

javascript - JavaScript 中的特殊字符

javascript - 如何检测 JavaScript 中的设备触摸支持?

javascript - OpenUI5 : JS views vs. XML View

node.js - 引用存储在 Linux/Unix 中的 UI5 控件失败,而在 Windows 上同样有效

javascript - 尝试使用 jquery 表单提交,但不起作用

font-awesome - 如何在 sap.ui.core.Icon 中显示 glyphicon/font-awesome?

binding - SAPUI5 - 复杂模型绑定(bind)

css - 页脚中的弹出窗口