durlabh
30 Nov 2009, 11:57 AM
Refer to thread:
http://www.extjs.com/forum/showthread.php?t=26963.
This needs to be fixed in trunk too:
Ext.override(Ext.grid.GridPanel, {
applyState : function(state){
var cm = this.colModel;
var cs = state.columns;
if(cs){
for(var i = 0, len = cs.length; i < len; i++){
var s = cs[i];
var c = cm.getColumnById(s.id);
if(c){
c.hidden = s.hidden;
c.width = s.width;
var oldIndex = cm.getIndexById(s.id);
if(oldIndex != i){
cm.moveColumn(oldIndex, i);
}
}
}
}
if(state.sort){
this.store[this.store.remoteSort ? 'setDefaultSort' : 'sort'](state.sort.field, state.sort.direction);
}
if(state.group && this.store.groupBy){
this.store.groupBy(state.group);
}
},
getState : function(){
var o = {columns: []};
for(var i = 0, c; c = this.colModel.config[i]; i++){
o.columns[i] = {
id: c.id,
width: c.width
};
if(c.hidden){
o.columns[i].hidden = true;
}
}
var ss = this.store.getSortState();
if(ss){
o.sort = ss;
}
if(this.store.getGroupState){
var gs = this.store.getGroupState();
if(gs){
o.group = gs;
}
}
return o;
}
});
http://www.extjs.com/forum/showthread.php?t=26963.
This needs to be fixed in trunk too:
Ext.override(Ext.grid.GridPanel, {
applyState : function(state){
var cm = this.colModel;
var cs = state.columns;
if(cs){
for(var i = 0, len = cs.length; i < len; i++){
var s = cs[i];
var c = cm.getColumnById(s.id);
if(c){
c.hidden = s.hidden;
c.width = s.width;
var oldIndex = cm.getIndexById(s.id);
if(oldIndex != i){
cm.moveColumn(oldIndex, i);
}
}
}
}
if(state.sort){
this.store[this.store.remoteSort ? 'setDefaultSort' : 'sort'](state.sort.field, state.sort.direction);
}
if(state.group && this.store.groupBy){
this.store.groupBy(state.group);
}
},
getState : function(){
var o = {columns: []};
for(var i = 0, c; c = this.colModel.config[i]; i++){
o.columns[i] = {
id: c.id,
width: c.width
};
if(c.hidden){
o.columns[i].hidden = true;
}
}
var ss = this.store.getSortState();
if(ss){
o.sort = ss;
}
if(this.store.getGroupState){
var gs = this.store.getGroupState();
if(gs){
o.group = gs;
}
}
return o;
}
});