2017-03-20 12 views
0

XMLモデルがテーブルにバインドされており、モデルに新しい行を追加したいとします。 XMLデータ自体はかなり単純です:SAPUI5 SAPUI5 XMLモデルアイテム追加

<gettagevents> 
<tageventlist> 
    <tagevent> 
     <time>2011-09-09T14:29:16.302Z</time> 
     <factory>06</factory> 
     <materialcode>21</materialcode> 
     <serial>16999991231</serial> 
    </tagevent> 
    <tagevent> 
     <time>2011-09-09T14:29:17.101Z</time> 
     <factory>06</factory> 
     <materialcode>21</materialcode> 
     <serial>16999991232</serial> 
    </tagevent> 
</tageventlist> 

のみ関連するシリアル値であるので、私はモデルに新しいシリアル番号を追加することは十分だろう。私はdocument.createElementについて読んだことがありますが、それは私にとってはうまくいくと思いますが、うまく動作しません。

私は私のコントローラでこの部分を持っている:

var oTable = this.getView().byId("tbl_det3_rfid"); 
var oSerial = "1234567890"; 
var oModel = oTable.getModel(); 
var aData = oModel.getProperty("/tageventlist/tagevent/serial") 

誰もがこれを成し遂げるためにどのように私を助けることができるので、シリアルなどと私のモデルに新しい行を追加1234567890?

おかげで、

ティム

+0

モデルは現在どのようにテーブルにバインドされていますか? –

+0

私のXMLビューでは、items = "{path: '/ tageventlist/tagevent'}"のような項目をバインドしてから、値とバインディング自体を表示するために{serial}を使用します。\t var oTable = this.getView()。 byId( "tbl_det3_rfid"); \t oTable.setModel(oRfidModel); – Tim

答えて

0

私はXML Model controlは、新しいレコードを追加することができないと思います。しかし、モデルからXMLオブジェクトを取得し、jQueryを使用してXMLノードをXMLノードに追加することができます。この後、テーブル内の新しいノードを表示するためにモデルを更新する必要があります。

var oXML = oModel.getObject("/tageventlist"); 
$(oXML).append("<tagevent><time>2011-09-09T14:29:16.302Z</time><factory>06</factory><materialcode>21</materialcode><serial>16999991236</serial></tagevent>"); 
oModel.refresh(); 
+0

スティーブンさん、ありがとうございます! – Tim

+0

上記の問題に戻ります。面白いことに、上のシナリオはChromeで動作しますが、IEではモデルに新しい行が追加されません。 Chromeでは、モデルを更新した後、新しい行が表示され、IEでは表示されません。エラーメッセージは表示されず、新しい行だけが表示されません。何か案は? – Tim

+0

申し訳ありませんが、これを確認する時間がありませんでした。あなたが開いた新しいスレッドにあなたの質問に対する解決策を投稿しました。 –