如何在网格加载后在Ext JS Grid中动态添加插件

时间:2012-11-20 19:56:40

标签: extjs extjs4

我正在使用GridHeaderFilter插件(http://www.sencha.com/forum/showthread.php?150918-Grid-Header-Filters

var testGrid = new Ext.grid.GridPanel({
    frame: true,
    minHeight: 200,
    plugins: [new Ext.ux.grid.GridHeaderFilters()],
    columns : [{
        text : 'Test Id',
        sortable : true,
        dataIndex : 'testId',
        filter: {
            xtype: 'textfield',
            type: 'string'
        }
    },                  
});

但是当我将一些列动态添加到此网格并使用时         grid.reconfigure(NULL,newColumns []);

反映了新列,但GridHeaderPlugin消失了。

试过这个http://www.sencha.com/forum/showthread.php?124179-Dynamically-adding-plugins-to-grid没有帮助。

1 个答案:

答案 0 :(得分:4)

要做的两件事让它发挥作用。

  1. 首先添加插件时,将插件指定为

    var grid = Ext.create('Ext.grid.Panel',{
        plugins:[Ext.create('Ext.ux.grid.GridHeaderFilters', {
            clicksToEdit: 2,
            pluginId:'gridHeaderPlugin'
        })]
    });
    
  2. 执行动态列时以及运行重新配置和renderFilters()

    之后
    grid.reconfigure(null, newColumns[]);
    grid.getPlugin('gridheaderfilters').renderFilters();