我有一个绑定到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;
}
我可以在调试器中看到更改的值,但是如何将更改后的值写回表中? 有什么想法吗?
谢谢, 添
答案 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");
});