Hi Isomorphic,
I wish to submit a nested custom XML back to the server using DataSource.
Fetched XML Format:
This is not the plain name-value mapping instead has an one more level of nesting. I was able to fetch the data correctly into the form used valueXpath with the datasource field. While saving I expected datasource to update the XML using XPATH attribute but it doesn't.
XML format while saving data was :
Following is the code which I am using
Please tell me how can I update the request XML correctly. FYI, I am not using smartclient server.
REF: DataSource Field Reference Doc for valueXpath says:
When you are saving data, the inbound DSRequest values, available as a Java Map, will use just dataSource field names as Map keys, not the valueXPath used to derive them. However, to achieve bidirectional valueXPath binding, you can use the server-side method dataSource.setProperties() to use the valueXPath when setting properties on your server object model.
I want to send the XML in a proper format to server so need to convert the XML at client side only. I tried using XMLTools api too but that too didn't helped me. I am blocked on this issue please lemme know the workaround or solution for this ASAP.
I wish to submit a nested custom XML back to the server using DataSource.
Fetched XML Format:
Code:
<response> <data> <record> <field1>Field1 Value</field1> <group> <field2>Field2 Value</field2> </group> </record> </data> </response>
XML format while saving data was :
Code:
<request> <data> <field2>Updated Field2 value</field2> <field1>Updated Field1 value</field1> <group> <field2>Field2 Value</field2> </group> </data> </request>
Code:
isc.DataSource.create({ ID:"contacts", dataFormat:"xml", recordXPath:"/response/data/record", dataURL:"http://localhost:8011/test/data", fields:[ {name:"field1"}, {name:"field2", valueXPath:"group/field2"}, ], transformRequest : function (dsRequest) { alert(this.xmlSerialize(dsRequest)); var params = {"data":dsRequest.data}; return this.xmlSerialize(params, null, null, "request"); }, operationBindings:[ { operationType:"update", dataProtocol: "postMessage", dataURL:"http://localhost:8011/test/data" } ] }); isc.DynamicForm.create({ ID: "exampleForm", width: 250, dataSource: contacts, autoFetchData: true }); isc.IButton.create({ left:0, top:40, width:50, title:"Save", click: function () { exampleForm.saveData(); } });
REF: DataSource Field Reference Doc for valueXpath says:
When you are saving data, the inbound DSRequest values, available as a Java Map, will use just dataSource field names as Map keys, not the valueXPath used to derive them. However, to achieve bidirectional valueXPath binding, you can use the server-side method dataSource.setProperties() to use the valueXPath when setting properties on your server object model.
I want to send the XML in a proper format to server so need to convert the XML at client side only. I tried using XMLTools api too but that too didn't helped me. I am blocked on this issue please lemme know the workaround or solution for this ASAP.