we using dojo jsonrest. whenever need refresh grid new data, dojo firing 2 server calls.
below code.
var myjsonrest = declare(jsonrest, { get: function(id, options) { return this.inherited( arguments, [id, lang.mixin(this.headers, options)]); } }); mydatastore = myjsonrest({ target: someurl, headers: { 'moduleuname': somemodulename }, idattribute: "id", query: function(query, options) { // other code } }); mydatastore.get("", { paramname: paramvalue }).then(function(result) { // fires request server gridobj.refresh(); // fires same request 2nd time server // if gridobj.refresh() commented out, grid not displayes new data. });
in order grid detect changes in store without triggering refresh, should wrap jsonrest store dojo.store.observable. updates store auto updated in grid.
mycachedatastore = new cache(mydatastore, new memory({}); myobservabledatastore = new observable(mycachedatastore)
you should able pass myobservabledatastore in place of mydatastore.
to update or refresh grid can change target url or update headers in mydatastore directly , call grid.refresh. have not tested updating of headers, example changes target url
/rest/users/
to
/rest/users/?username=jdoe
and grid updates fine.
mydatastore.target = '/rest/users/?username=jdoe'
or maybe
mydatastore.headers[paramname] = paramvalue
since myjsonrest store mixin options provided "get" headers well.
Comments
Post a Comment