extjs 用cookie保存用户习惯隐藏列 刷新之后列显示不正常
如题,这是在网上查找到的代码,第一次登陆后,隐藏列刷新都正常,但是第二次继续隐藏列时,第一次隐藏的列就不隐藏了!如果将已隐藏的列恢复显示的话,那全部列都将显示!请问,这是怎么回事?
stateful:true,
stateId:'cookiegrid',
//下面有把cm的该事件托管给grid
stateEvents:['hiddenchange'],
//要存入cookie的数据
getState: function(){
return {initColumn:this.getColumnModel().initColumn};
},
//恢复
applyState:function(state, config){
if(state){
//for(var k in state.initColumn){
// alert("1212+="+state.initColumn[k]);
//}
Ext.apply(this,state);
}
//根据cookie取值设置hidden与否
var cm = this.getColumnModel();
for(var k in state.initColumn){
var col = cm.findColumnIndex(k);
cm.setHidden(col,state.initColumn[k]);
}
},
listeners:{
'beforerender':function(grid,state){
grid.on('hiddenchange',function(cm,columnIndex,hidden){
if(!cm.initColumn){
cm.initColumn = {};
}
//监听事件,把cm的显示情况存入cookie
cm.initColumn[cm.getDataIndex(columnIndex)]=hidden;
this.saveState();
},this);