javascript - Saving the whole EditorGrid with a single Ajax request -


i save extjs (3.3.1) editorgrid single ajax request.

i've created editorgrid, based on arraystore.

var store = new ext.data.arraystore({     data: arraydata,     fields: [ 'id', 'qty', 'idservice', 'idsubscription',                        'description', 'vat', 'amount' ] });     [...] var grid = {     xtype: 'editorgrid',     store: store,     view: gridview,     colmodel: colmodel,     selmodel: selmodel,     striperows: true,     tbar: tbar,     autoheight: true,     width: 872,     clickstoedit: 1 }; 

i've created save button following handler:

app.inv.savebuttonhandler = function () {     var myform = ext.getcmp("formheader").getform();     if (!myform.isvalid()) {         ext.messagebox.alert('form not submitted',                          'please complete form , try again.');         return;     }     myform.el.mask('please wait', 'x-mask-loading');     ext.ajax.request({         params: {              idcustomer: myform.findfield("idcustomer").getvalue(),             issuedate: myform.findfield("issuedate").getvalue(),             documenttype: myform.findfield("documenttype").getvalue(),             documentnumber: myform.findfield("documentnumber").getvalue()                    },         url: 'save-sales-document-action',         method: 'post',         success: function (response, request) {             myform.el.unmask();             ext.messagebox.alert('success', 'returned: ' + response.responsetext);         },         failure: function (response, request) {             myform.el.unmask();             ext.messagebox.alert('failed', 'returned: ' + response.responsetext);         }     }); }; 

in other words, can send form elements simple value, don't know how send whole data grid. send whole data grid single ajax request.

i've used before cell-by-cell saving method, in case prefer save whole grid in 1 go. don't need server-side part, in java, client-side javascript.

can help? thanks!

after night sleep , still no answers, made further tries , can answer own question. leave question open anyway, in case knows better way.

to solve problem, added property "storeid: 'gridstore'" arraystore, locate store later ext.storemgr.lookup(), then, @ saving time, proceed re-build array record record in following way:

var griddata = new array(); ext.storemgr.lookup('gridstore').each(function (record) {     griddata.push(record.data); }); 

the essential part don't whole record, data field of it.

after i've array data, easy part add params of ajax.request:

params: {     ...     griddata: ext.encode(griddata) }, 

this works. data encoded in single field. of course on server have decoded.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -