I would like to pre-process the json (responseText) from the server before loading the grid. I have completed the work and created a patch:
Basically, I created a function call responseComplete, and (in code) mimic'd loadComplete in set up. I then called responseComplete with the responseText from the server
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Index: grid.base.js<br /> ===================================================================<br /> --- grid.base.js (revision 3438)<br /> +++ grid.base.js (working copy)<br /> @@ -56,6 +56,7 @@<br /> onRightClickRow: null,<br /> onPaging: null,<br /> onSelectAll: null,<br /> + responseComplete: null,<br /> loadComplete: null,<br /> loadError: null,<br /> loadBeforeSend: null,<br /> @@ -499,11 +500,12 @@<br /> var ts = this;<br /> $("<div id="lui_"+this.id+"/" class="loadingui">").insertBefore(this);<br /> $(this).attr({cellSpacing:"0",cellPadding:"0"});<br /> - var onSelectRow = this.p.onSelectRow, ondblClickRow = this.p.ondblClickRow, onSortCol=this.p.onSortCol, loadComplete = this.p.loadComplete, loadError = this.p.loadError, loadBeforeSend = this.p.loadBeforeSend;<br /> + var onSelectRow=this.p.onSelectRow, ondblClickRow=this.p.ondblClickRow, onSortCol=this.p.onSortCol, responseComplete=this.p.responseComplete, loadComplete=this.p.loadComplete, loadError=this.p.loadError, loadBeforeSend=this.p.loadBeforeSend;<br /> var onRightClickRow = this.p.onRightClickRow, afterInsRow = this.p.afterInsertRow;<br /> if(typeof onSelectRow !== 'function') {onSelectRow=false;}<br /> if(typeof ondblClickRow !== 'function') {ondblClickRow=false;}<br /> if(typeof onSortCol !== 'function') {onSortCol=false;}<br /> + if(typeof responseComplete !== 'function') {responseComplete=false;}<br /> if(typeof loadComplete !== 'function') {loadComplete=false;}<br /> if(typeof onRightClickRow !== 'function') {onRightClickRow=false;}<br /> if(typeof loadError !== 'function') {loadError=false;}<br /> @@ -693,7 +695,7 @@<br /> switch(ts.p.datatype)<br /> {<br /> case "json":<br /> - $.ajax({url:ts.p.url,type:ts.p.mtype,dataType:"json",data: gdata, complete:function(JSON,st) { if(st=="success") {addJSONData(eval("("+JSON.responseText+")"),ts.grid.bDiv); if(loadComplete) {loadComplete();}}}, error:function(xhr,st,err){if(loadError) {loadError(xhr,st,err);}endReq();}, beforeSend: function(xhr){if(loadBeforeSend) {loadBeforeSend(xhr);}}});<br /> + $.ajax({url:ts.p.url,type:ts.p.mtype,dataType:"json",data: gdata, complete:function(JSON,st) { if(st=="success") {if(responseComplete){addJSONData(responseComplete(JSON.responseText),ts.grid.bDiv);}else{addJSONData(eval("("+JSON.responseText+")"),ts.grid.bDiv);} if(loadComplete) {loadComplete();} } }, error:function(xhr,st,err){if(loadError) {loadError(xhr,st,err);}endReq();}, beforeSend: function(xhr){if(loadBeforeSend) {loadBeforeSend(xhr);}}});<br /> if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}<br /> break;<br /> case "xml":<br /> </div> |
Copyright 2014 TriRand LtdAll Rights ReservedRSS
Back to Top