PDA

View Full Version : Fix for paging error with JSON datasource



gordon
1 Nov 2006, 8:17 AM
Jack,

While the code to extract the total rows appears in the XML datasource it does not appear to have made its way into JSON one. You may wish to consider the fix below.

Regards,

Gordon
<pre>
YAHOO.ext.grid.JSONDataModel.prototype.loadData = function(data, callback, keepExisting){
var idField = this.schema.id;
var fields = this.schema.fields;
var rowData = [];
try{
var v=eval('data.'+this.schema.totalTag);
if(!isNaN(v))
{
this.totalCount=v;
}
var root = eval('data.' + this.schema.root);
for(var i = 0; i < root.length; i++){
var node = root[i];
var colData = [];
colData.node = node;
colData.id = (typeof node[idField] != 'undefined' && node[idField] !== '' ? node[idField] : String(i));
for(var j = 0; j < fields.length; j++) {
var val = node[fields[j]];
if(typeof val == 'undefined'){
val = '';
}
if(this.preprocessors[j]){
val = this.preprocessors[j](val);
}
colData.push(val);
}
rowData.push(colData);
}
if(keepExisting !== true){
this.removeAll();
}
this.addRows(rowData);
if(typeof callback == 'function'){
callback(this, true);
}
this.fireLoadEvent();
}catch(e){
this.fireLoadException(e, null);
if(typeof callback == 'function'){
callback(this, false);
}
}
};
</pre>

jarrod
1 Nov 2006, 6:57 PM
Jack's fixed that in the 0.33 beta build - set totalProperty in your JSONDataModel schema.