ExtJS:添加复选框列“即时”

时间:2011-04-15 08:50:28

标签: extjs grid

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

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以使这件事有效?

提前致谢!

1 个答案:

答案 0 :(得分: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验证源实际上是否已包含且可用。