extjs 4:如何向任何自定义表单添加按钮

时间:2012-06-20 11:45:52

标签: javascript extjs

我目前正在尝试添加一个自定义按钮,当用户想要使用EXTJS 4添加新按钮时,该按钮将能够调用。

这是我想用来创建按钮的TimeButton.js文件

Ext.namespace("Ext.controls");

Ext.create('Ext.Button', {
text: 'Time',
renderTo: Ext.getBody(),
handler: function() {
    alert('The current time is '+Date())
}
});

Ext.reg('timebutton', Ext.controls.TimeButton);

但是当我尝试将其添加到任何表单时,我会收到以下错误

types[config.xtype || defaultType] is not a constructor

或者做这样的事情会更好

Ext.controls.TimeButton = Ext.extend(Ext.Panel,  {

initComponent: function(){


    Ext.apply(this, {                     
            frame: true
            ,height: 330    
            ,layout: 'border'
            ,layout: 'column'
            ,split: true
            ,cls: 'DocumentWindow'
            ,items: []

    }); 

    this.documentGrid = new Ext.controls.DocumentGrid({height: 220,
                agentId : this.agentId,
                columnWidth: 0.5})

    Ext.controls.DocumentPanel.superclass.initComponent.apply(this, arguments);


}

据我所知,当尝试实例化(创建)一个不存在的组件但我没有看到错误可能出现的地方时会发生这种情况!我发布的代码中是否有错误?

1 个答案:

答案 0 :(得分:0)

将您的按钮定义为类,通过提供xtype属性将其注册为与alias一起使用,并在父items容器中实例化它。 Here就是一个例子。