2017-04-20 7 views
0

私はXMLモデルにバインドされたテーブルを持っています。SAPUI5行の内容を変更してテーブルに書き戻します

私は単純に、このように私のコントローラ内の行を読んでいます
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(); 

今Iループと、私は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

は、モデル内の値を変更するには、行を超えるループがバインディングコンテキストを取得することができます。バインディングコンテキストは、モデル内のプロパティを設定するために使用できるバインディングパスを提供します。

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"); 
}); 
+0

もう一度非常にありがとうございます! – Tim

関連する問題