也谈谈Ext.Grid之记录用户使用习惯—隐藏列
在论坛看到http://www.iteye.com/topic/457854
?
自己有点想法,于是随手写了个示例:
?
功能: 用户点击grid的表头菜单显示/隐藏列,重新刷新页面后保留。
?
代码如下:
stateful:true, stateId:'cookiegrid', // 要存入cookie的数据getState: function(){ return {initColumn:this.initColumn}; }, applyState:function(state, config){ if(state){ 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) {grid.on ('hiddenchange', function(cm, columnIndex, hidden) {if(!cm.initColumn) {cm.initColumn = {};}// 监听事件,把cm的显示情况存入cookiecm.initColumn[cm.getDataIndex (columnIndex)] = hidden;this.saveState ();}, this);// 托管事件grid.relayEvents (grid.getColumnModel (), ['hiddenchange']);}} 5 楼 goodfifa08 2009-09-01 能不能 说明一下 stateId:'cookiegrid' 这个属性的意思 6 楼 atian25 2009-09-01 看Component的api咯stateId : String
The unique id for this component to use for state management purposes (defaults to the component id if one was set, otherwise null if the component is using a generated id).
See stateful for an explanation of saving and restoring Component state.
不需要像我的那么麻烦,看2楼的yiminghe的说法. 7 楼 goodfifa08 2009-09-01 很好很强大 8 楼 showker 2009-10-17 Ext自带的这个stateful,这个保持状态能保持多久?用户注销后重新登录就失效了,能否设置这个cookie的时间? 9 楼 atian25 2009-10-19 showker 写道Ext自带的这个stateful,这个保持状态能保持多久?用户注销后重新登录就失效了,能否设置这个cookie的时间?
# Ext.state.Manager.setProvider(
# new Ext.state.CookieProvider({
# expires: new Date(new Date().getTime()+(1000*60*60*24*365))
# })
# ); 10 楼 kimmking 2009-10-19 好东西啊。
savestate原来有这个功能。
没仔细看api和源码。罪过。 11 楼 shily_yuanling 2009-11-30 ^^^^^^^