gordon
11-01-2006, 11: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>
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>