Grid 自动隐藏";“空的”;ExtJS网格面板中的列
ExtJS网格是否有自动隐藏“空”列的插件 如果基础存储中所有记录的映射字段的值与给定的“空”条件(给定值或更好的函数)匹配,则列应被视为“空” 基础存储上的运行时添加/删除/更新操作应相应地隐藏/取消隐藏列Grid 自动隐藏";“空的”;ExtJS网格面板中的列,grid,hide,show,extjs,Grid,Hide,Show,Extjs,ExtJS网格是否有自动隐藏“空”列的插件 如果基础存储中所有记录的映射字段的值与给定的“空”条件(给定值或更好的函数)匹配,则列应被视为“空” 基础存储上的运行时添加/删除/更新操作应相应地隐藏/取消隐藏列 谢谢 我不得不做类似的事情。。。这是一个“隐藏列模型”,它将根据“fieldHasData”方法的返回值隐藏/显示列。。。这可能是一个接近你要求的开始 Ext.ux.grid.HidingColumnModel = function() { var Class = Ext.ext
谢谢 我不得不做类似的事情。。。这是一个“隐藏列模型”,它将根据“fieldHasData”方法的返回值隐藏/显示列。。。这可能是一个接近你要求的开始
Ext.ux.grid.HidingColumnModel = function() {
var Class = Ext.extend(Ext.grid.ColumnModel, {
constructor:function(config) {
Class.superclass.constructor.call(this, config);
},
onGridStoreLoad:function(store, records, options) {
store.fields.each(function(item, index, length) {
var colIndex = this.findColumnIndex(item.name);
if (colIndex >= 0) {
this.setHidden(colIndex, !this.fieldHasData(item.name, records));
}
}, this);
},
fieldHasData:function(field, records) {
var hasData = false;
Ext.each(Ext.pluck(records, "data"), function(item, index, allItems) {
if (item[field]) {
hasData = true;
}
});
return hasData;
}
});
return Class;
}();
然后在你的格子里。。。在列模型上添加侦听器
var columnModel = new Ext.ux.grid.HidingColumnModel(),
store = ... {create your store},
gridPanel = new Ext.grid.GridPanel({
...
store:store,
columnModel:columnModel,
...
});
store.on('load', columnModel.onGridStoreLoad, columnModel);
我不得不做类似的事情。。。这是一个“隐藏列模型”,它将根据“fieldHasData”方法的返回值隐藏/显示列。。。这可能是一个接近你要求的开始
Ext.ux.grid.HidingColumnModel = function() {
var Class = Ext.extend(Ext.grid.ColumnModel, {
constructor:function(config) {
Class.superclass.constructor.call(this, config);
},
onGridStoreLoad:function(store, records, options) {
store.fields.each(function(item, index, length) {
var colIndex = this.findColumnIndex(item.name);
if (colIndex >= 0) {
this.setHidden(colIndex, !this.fieldHasData(item.name, records));
}
}, this);
},
fieldHasData:function(field, records) {
var hasData = false;
Ext.each(Ext.pluck(records, "data"), function(item, index, allItems) {
if (item[field]) {
hasData = true;
}
});
return hasData;
}
});
return Class;
}();
然后在你的格子里。。。在列模型上添加侦听器
var columnModel = new Ext.ux.grid.HidingColumnModel(),
store = ... {create your store},
gridPanel = new Ext.grid.GridPanel({
...
store:store,
columnModel:columnModel,
...
});
store.on('load', columnModel.onGridStoreLoad, columnModel);
因为我在任何地方都找不到类似的插件,所以我只是自己实现了它:) 代码位于以下extjs/sencha论坛:
由于我在任何地方都找不到类似的插件,我只是自己实现了它:) 代码位于以下extjs/sencha论坛: 谢谢你的回答:)我最终自己实现了插件,因为我需要运行时隐藏/显示,我需要它能够快速处理数千行。谢谢你的回答:)我最终自己实现了插件,因为我需要运行时隐藏/显示,我需要它能够快速处理数千行。