SAPUI5更改行内容并写回表

时间:2017-04-20 11:41:08

标签: javascript xml sapui5

我有一个绑定到XML模型的表。

 var oModel = new sap.ui.model.xml.XMLModel();
 oModel.loadData("http://localhost/xxxxx");

 var oTable = this.getView().byId("TableId");
 oTable.setModel(oModel);
        oTable.bindRows({
            path: "/tageventlist/tagevent",
        })

我正在读取控制器中的行,就像这样:

var oItems = this.byId("TableId").getRows();

现在我遍历这些项目,我需要更改2个字段的内容:

for (var i = 0; i < oItems.length; i++) {
     oItems[i].mAggregations.cells[1].mProperties.unit = 'NewUnit';
     oItems[i].mAggregations.cells[0].mProperties.title = 'NewTitle;
 }

我可以在调试器中看到更改的值,但是如何将更改后的值写回表中? 有什么想法吗?

谢谢, 添

1 个答案:

答案 0 :(得分:0)

要更改模型中的值,可以循环遍历行以获取绑定上下文。绑定上下文将为您提供可用于在模型中设置属性的绑定路径。

var oItems = this.byId("TableId").getRows();
var oModel = this.oTable.getModel();

oItems.forEach(function(oItem){
    var oContext = oItem.getBindingContext();
    oModel.setProperty(oContext.getPath()+"/unit ","NewUnit");
    oModel.setProperty(oContext.getPath()+"/title  ","NewTitle");
});