EXT-JS 4.1:将自定义菜单添加到网格列标题中,而不使用默认菜单



我想将自定义菜单项添加到网格列标题 - 我可以这样做,但显然它仅在自定义菜单可用时才可用。 但是,如果我不希望我的列可排序或隐藏,则不会显示自定义菜单。我创建自定义菜单的方式如下:

    var menu = Ext.getCmp('pairsGrid').headerCt.getMenu();
    var customEls = menu.add([{
        xtype: 'menu',
        floating: false,
        items:[
            {
                text: 'Management',
                iconCls: 'edit',
                menu: {
                    xtype: "menu",
                    items: [
                        {
                            text: 'Start'
                        },{
                            text: 'Stop'
                        }
                    ]
                }                   
            }
        ]
    }]);

如果在我的列配置中,我有sortable: false并且hideable: false我的自定义菜单将不会显示;否则,它就在那里。有没有其他方法可以创建菜单,或者以某种方式在没有默认菜单的情况下使其可见?干杯eRez

您可以通过

重写列上的方法强制菜单可见beforeRender

{
    text     : 'xxx',
    sortable : false,
    hideable : false,
    dataIndex: 'xxx',
    beforeRender: function() {
        Ext.grid.column.Column.prototype.beforeRender.call(this);
        this.menuDisabled = false;
    }
},

样品:http://jsfiddle.net/sg9w7/1/

最新更新