2011-04-15 68 views
0

我有一个自定义'类',它扩展了Ext.grid.GridPanel。我想有一列复选框(example which uses Ext.ux.grid.CheckboxColumn - 只是我需要的东西)。 我的目标是与预先生成的配置对象,包括列模型(它是由一个PHP脚本生成的)使用它,所以我重载initComponent方法添加在它里面列:ExtJS:添加复选框列“即时”

MyGrid = Ext.extend 
(
    Ext.grid.GridPanel 
    ,{ 
     initComponent : function() 
     { 
      this.columns.push({ 
       xtype  : 'checkcolumn' 
       ,header  : 'Show on map ?' 
       ,dataIndex : 'showonmap' 
       ,width  : 130 
      }); 

      Ext.apply(this, {columns:this.columns}); 
      MyGrid.superclass.initComponent.apply(this, arguments); 
     } 
    } 
); 

这样的事情与合作ActionColumn组件,但是这段代码失败了,因为它找不到构造函数(可能是CheckColumn)。

我应该如何修改我的代码或CheckColumn使这件事情起作用?

在此先感谢!

回答

2

如果找不到构造函数,则不能正确导入CheckColumn类。试试这个,看看构造函数可以直接发现:

MyGrid = Ext.extend 
(
    Ext.grid.GridPanel 
    ,{ 
     initComponent : function() 
     { 
      this.columns.push(new Ext.ux.grid.CheckColumn({ 
       ,header  : 'Show on map ?' 
       ,dataIndex : 'showonmap' 
       ,width  : 130 
      })); 

      Ext.apply(this, {columns:this.columns}); 
      MyGrid.superclass.initComponent.apply(this, arguments); 
     } 
    } 
); 

如果你得到一个异常Ext.ux.grid.CheckColumn is not a constructor,那么你肯定知道的类是不缴费。确保你已经正确地包含了该类,并且可以使用Firebug验证该源是否实际包含并可用。