ExtJs如何从商店/模型将数据加载到表单面板

时间:2014-06-16 11:36:23

标签: extjs extjs4

我是extjs 4的新手。我尝试加载默认值表单加载如下:

    launch: function() {
       Ext.create('panelid', {renderTo: 'form'});
      var form = this.up('panelid').getForm();
      var model = Ext.getCmp('modelid');
      form.loadRecord(model);
   }

这对我来说不起作用undefined form

这是我的观点类

Ext.define('panelid', {
    extend: 'Ext.form.Panel',

    alternateClassName: [
        'confpanel'
    ],
    requires: [
        'Ext.container.Container',
        'Ext.form.field.File',
        'Ext.button.Button'
    ],

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [


                {
                    xtype: 'textfield',
                    itemId: 'NAME_2',
                    fieldLabel: 'SDFA',
                    name: 'NAME_2'
                },
                {
                    xtype: 'button',
                    handler: function(button, e) {
                        var form = this.up('form').getForm();
                        if(form.isValid()){
                            form.submit({
                                url: 'AA?submit=true'
                            });
                        }
                    },
                    itemId: 'btnSave',
                    text: 'Save'
                }
            ]
        });
        me.callParent(arguments);
    }

});

我的商店userClassName名称是'storeid'而我的模型userClassName是modelid这个非常简单的问题,但是很难理解服务器 - 客户端之间的数据通信。请帮我解决这个简单的问题

1 个答案:

答案 0 :(得分:0)

我在您的代码中看到了一些错误:

renderTo只能与Elements一起使用,而不能与组件一起使用。 例如。你的html页面上有Ext.getBody()或div id 对于容器,您应该使用applyTo。

模型不是组件。您不能使用getCmp来获取模型参考。

您必须以定义面板的方式定义它,然后使用您在此处指定的名称作为参考。

检查sencha文档,了解如何完成所有这些操作。它在那里得到了很好的解释。