Ext.Grid 如何在一加载的时候就隐藏某些列
1个回答
展开全部
背景:领导要求保持用户浏览习惯,就是上次他保留了哪几个列,下次登录时还是显示哪几个列,要是又想多看几个列了,再多放几个出来,那下次看到的就是增加后的列。就是通常所说的用户定制界面。我想通过在隐藏,显示列的Js中,把需要的列写入cookie,然后在加载的时候将cookie中的列通过js显示出来,把不需要的列隐藏掉。不知道我表达的够不够清楚。谢谢问题补充:谢谢您的解答。但是还是有个问题,就是我在隐藏列的时候如何记录显示的列到cookie中呢,我对ext不是很熟悉,是不是要对gidpanel进行重写呢?
Ext.override(Ext.grid.GridPanel, {
showColumnGroup : function(columnPrefix) {
this.switchColumnGroup(columnPrefix, false);},
hideColumnGroup : function(columnPrefix) {
this.switchColumnGroup(columnPrefix, true);},
switchColumnGroup : function(columnPrefix, state) {
var cm = this.colModel;
cm.suspendEvents();
function doFilter(column, colIndex, allColumns) {
if (column.id.substr(0,3) == columnPrefix) {
cm.setHidden(colIndex, state);}}Ext.each(cm.config, doFilter, this);
cm.resumeEvents();
Ext.override(Ext.grid.GridPanel, {
showColumnGroup : function(columnPrefix) {
this.switchColumnGroup(columnPrefix, false);},
hideColumnGroup : function(columnPrefix) {
this.switchColumnGroup(columnPrefix, true);},
switchColumnGroup : function(columnPrefix, state) {
var cm = this.colModel;
cm.suspendEvents();
function doFilter(column, colIndex, allColumns) {
if (column.id.substr(0,3) == columnPrefix) {
cm.setHidden(colIndex, state);}}Ext.each(cm.config, doFilter, this);
cm.resumeEvents();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询