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

发布于 2024-10-18 11:02:34 字数 1765 浏览 5 评论 0原文

当我尝试覆盖 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);

}

});

How can I call the formpanel.getForm() method when I am trying to override the Ext formpanel?

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

}

});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幽梦紫曦~ 2024-10-25 11:02:34

首先,在您的代码中,您要扩展而不是重写...

如果您将 var 放在最开始的位置,则 commentsForm.getForm() 是一种在 FormPanel 中访问 BasicForm 的方法,但是您的关于名称空间的代码令人困惑: myn.commentsForm.superclass.initComponent.apply(this);

First in your code you are extending not overriding...

commentsForm.getForm() is a way to access BasicForm in your FormPanel if you place var at very beggining, however your code is confusing regarding name spaces: myn.commentsForm.superclass.initComponent.apply(this);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文