Revision: 39155
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 14, 2011 03:02 by misterb101
Initial Code
getRowClass : function(record, rowIndex, p, ds){
p.cols = p.cols-1;
var content = this.bodyContent[record.id];
if(!content && !this.lazyRender){
content = this.getBodyContent(record, rowIndex);
}
if(content){
p.body = content;
}
return this.state[record.id] ? 'x-grid3-row-expanded' : 'x-grid3-row-collapsed';
},
/* If grid already has a getRowClass, don't override it
* get the original class and combine it with our class
*/
// @private
combineGetRowClass: function(record, rowIndex, p, ds){
var cls = this.originalGetRowClass(record, rowIndex, p, ds) + ' ' + this.getRowClass(record, rowIndex, p, ds);
return cls;
},
init : function(grid){
this.grid = grid;
var view = grid.getView();
/* create a backup copy of the original, we want to apply both the standard and our custom functions */
if (view.getRowClass) {
this.originalGetRowClass = this.clone(view.getRowClass);
view.getRowClass = this.combineGetRowClass.createDelegate(this);
} else {
view.getRowClass = this.getRowClass.createDelegate(this);
}
view.enableRowBody = true;
grid.on('render', this.onRender, this);
grid.on('destroy', this.onDestroy, this);
},
// @private
clone: function(obj){
if(obj == null || typeof(obj) != 'object')
return obj;
var temp = new obj.constructor();
for(var key in obj)
temp[key] = clone(obj[key]);
return temp;
},
Initial URL
robboerman.com
Initial Description
ExtJS is great for OO style interface design but has a couple of strange behaviors. For instance when adding the ExtJS RowExpander plugin to a grid, the plugin overrides the gridView's getRowClass function. That's not really what you want. For instance, I want to mark certain records in a grid red when they are overdue, and also use the RowExpander plugin. The plugin however throws away my own custom formatting. Solution is to create a backup copy of the default getRowClass function and call both the plugin function and the original, concatenating the results together with a space
Initial Title
Prevent ExtJS grid plugin from overriding the default getRowClass method of Grid View
Initial Tags
javascript
Initial Language
JavaScript