ExtJS:扩展表单面板时的BUtton操作

时间:2011-02-21 19:18:08

标签: extjs formpanel

当我尝试覆盖Ext formpanel时,如何调用formpanel.getForm()方法?

commentsForm = Ext.extend(Ext.form.FormPanel, {
    frame: true,
    initComponent: function() {
        var config = {
        frame : true,
        autoScroll : true,
        labelWidth : 150,
        autoWidth : true,
        labelPad : 20,
        waitMsgTarget: true,
        bodyStyle:'padding:0px 15px 15px 15px',
        items: [{
            xtype : 'fieldset',
            title : 'Write Comment',
            anchor : '100%',
            defaults : {
                selectOnFocus: true,
                msgTarget: 'side',
                xtype: 'textfield',
                width : 200
            },
            items : [{
                xtype : 'textarea',
                name : 'comment',
                allowBlank : false
            }, {
                name : 'added_by',
                allowBlank : false
            }, {
                xtype : 'myndatefield',
                name : 'added_at',
                allowBlank : false,
                value : new Date()
            }]
        }],
        buttons: [{
            text: 'Add',
            handler : function() {
                // TODO 
                var classForm = this.getForm();

                console.log(this.getForm());

                if (classForm.isValid()) {
                    console.log(classForm.findField("name"));
                }
                Ext.WindowMgr.hideAll();
            }
        }, {
            text: 'Cancel',
            handler : function() {
                Ext.WindowMgr.hideAll();
            }
        }]
    };

    Ext.apply(this, Ext.apply(this.initialConfig, config));
    myn.commentsForm.superclass.initComponent.apply(this);

}

});

1 个答案:

答案 0 :(得分:0)

首先在你的代码中扩展而不是覆盖......

commentsForm.getForm()是一种在FormPanel中访问BasicForm的方法,如果您将var置于非常小的位置,但是您的代码对名称空间感到困惑: myn.commentsForm.superclass.initComponent.apply(this);