0
votes

I have an XML model bound to a table and I want to add a new row to the model. The XML data itself is rather simple:

<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>

Only relevant is the value for serial, so it would be enough for me to add a new serial number to the model. I have read about document.createElement, which I guess could work for me, but I do not get it working.

I have this part in my controller:

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

Can anyone help me how to get this done, so adding a new line to my model with the serial e.g. 1234567890?

Thanks,

Tim

1
How is your model currently binded to the table ?Ji aSH
in my xml view I bind the items like this: items="{path: '/tageventlist/tagevent'}" and then use {serial} to display the value and the binding itself var oTable = this.getView().byId("tbl_det3_rfid"); oTable.setModel(oRfidModel);Tim

1 Answers

1
votes

I don't think the XML Model control allows you to add a new record. However you could get the XML object from the model and append a XML node to it using jQuery. After this you would have to update the model to see the new node in the table.

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();