Extjs 如何在“轴网”面板中删除或添加柱

Extjs 如何在“轴网”面板中删除或添加柱,extjs,extjs3,Extjs,Extjs3,grid.getcolumnModel().setHidden(0,true)将对列菜单生效 而不是网格面板。在列菜单中,您可以启用或禁用列。如何在网格面板中动态添加或删除列?您可能必须刷新Ext.grid.GridView才能显示列更改 grid.getView().refresh(true) // true to refresh HeadersToo 我想这就是你要找的 确保您也在线程中查看post#37。在ExtJs 3.x中,这段代码有助于: 注意:我使用了复选框作为第一列。如果你不需

grid.getcolumnModel().setHidden(0,true)将对列菜单生效
而不是网格面板。在列菜单中,您可以启用或禁用列。如何在网格面板中动态添加或删除列?

您可能必须刷新Ext.grid.GridView才能显示列更改

grid.getView().refresh(true) // true to refresh HeadersToo

我想这就是你要找的


确保您也在线程中查看post#37。

在ExtJs 3.x中,这段代码有助于:

注意:我使用了复选框作为第一列。如果你不需要那条线,请把它移走


对于那些想为Ext.js 4.2和avobe寻找解决方案的人来说

我使用“重新配置”方法动态更改网格列:


下面是一个很好的例子:

重新配置
功能可能无法与插件一起正常工作。特别是如果你有类似于
过滤器的东西

如果只需要执行一次,则基于使用的某些全局设置,可以使用
initComponent
并更改初始配置。在调用
this.callParent()之前,请确保对配置进行所有更改

使用ExtJS 6.2进行测试(但也适用于ExtJS 4和5)

initComponent:function(){
//此设置的列数减少
如果(!app.Settings.dontUseFruits()){
var newColumns=[];
对于(var i=0;i可能尝试

存储。添加(新记录); store.commitChanges()


或者store.remove()和store.commitChanges()

这里是问题的解决方案,然后是查找更多详细信息的参考资料……只是一个链接……场景。
var newColModel = new Ext.grid.ColumnModel({
    columns: [
        grid.getSelectionModel(),
        {
            header: 'New column 1'
        }, {
            header: 'New column 2'
        }
    ],
    defaults: {
        sortable: false
    }
});

grid.store.reader = new Ext.data.JsonReader({
    root: 'items',
    totalProperty: 'count',
    fields: [
        // Please provide new array of fields here
    ]
});

grid.reconfigure(grid.store, newColModel);
initComponent: function() {
    // less columns for this setting
    if (!app.Settings.dontUseFruits()) {
        var newColumns = [];
        for(var i=0; i<this.columns.items.length; i++) {
            var column = this.columns.items[i];
            // remove (don't add) columns for which `dataIndex` starts with "fruit"
            if (column.dataIndex.search(/^fruit/) < 0) {
                newColumns.push(column);
            }
        }
        this.columns.items = newColumns;
    }

    this.callParent();