2012-11-20 41 views
3

后我使用GridHeaderFilter插件(http://www.sencha.com/forum/showthread.php?150918-Grid-Header-Filters如何添加动态插件在Ext JS中网格栅加载

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并没有帮助。

回答

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();