Extjs 从Ext JS 4.1中的列菜单重命名列标题

Extjs 从Ext JS 4.1中的列菜单重命名列标题,extjs,grid,extjs4.1,Extjs,Grid,Extjs4.1,是否可以在此菜单中添加一项以重命名列标题?您应该可以这样做 在Ext.grid.header.Container对象上的“menucreate”事件上添加侦听器。此代理将向您传递菜单的引用,然后您可以操纵菜单 范例 var gridHeader = gridPanelInstance.getView().headerCt; //return the Header Container gridHeader.on('menucreate', function(gridHeaderContaine


是否可以在此菜单中添加一项以重命名列标题?

您应该可以这样做

在Ext.grid.header.Container对象上的“menucreate”事件上添加侦听器。此代理将向您传递菜单的引用,然后您可以操纵菜单

范例

var gridHeader = gridPanelInstance.getView().headerCt; //return the Header Container 

gridHeader.on('menucreate', function(gridHeaderContainer, menu, option) {

    // do whatever you want with the menu here...  eg: add/remove/ edit menu item
});

这个问题似乎有点模糊,我相信所附的图片让我很反感

自定义网格标题菜单()

请看其中一个答案

我的最终产品我甚至进一步定制了我的答案:

initComponent: function () {
    this.callParent(arguments);

    this.headerCt.on('headerclick', function (header, column, event, html) {
        if (column.xtype == 'rownumberer') {
            return false;
        };

        header.showMenuBy(column.el.dom, column);
    }, this);

    this.headerCt.on('menucreate', function (header, column, event, html) {
        var menu = header.getMenu();

        this.createHeaderMenu(menu);
    }, this);
},

createHeaderMenu: function (menu) {
    menu.removeAll();

    // simulate header menu to be plain (menu is already created at this point)
    menu.addCls(Ext.baseCSSPrefix + 'menu-plain');
    menu.name = 'report_data_header_menu';

    menu.add({
        name: 'sort_asc',
        text: 'Sort Ascending'
    }, {
        name: 'sort_desc',
        text: 'Sort Descending'
    }, {
        name: 'remove_column',
        text: 'Remove'
    });
}
确保在访问“this.headerCt”之前调用“this.callParent(arguments)”。我遇到了一些问题,因为我在调用“this.callParent(arguments)”之前试图访问“this.headerCt”,并且“this.headerCt”未定义。你的例子帮助我解决了那个问题。谢谢