1

データストアを使用してフォームにJSONデータを入力するにはどうすればよいですか?テキストフィールドはストア、モデルとどのように関連していますか?

Ext.define('app.formStore', {
extend: 'Ext.data.Model',
fields: [
   {name: 'naziv', type:'string'},
   {name: 'oib', type:'int'},
   {name: 'email', type:'string'}
]
});

var myStore = Ext.create('Ext.data.Store', {
model: 'app.formStore',
proxy: {
    type: 'ajax',
    url : 'app/myJson.json',
    reader:{ 
        type:'json'                     
    }
},
autoLoad:true   
});

Ext.onReady(function() {


var testForm = Ext.create('Ext.form.Panel', {
                    width: 500,
                    renderTo: Ext.getBody(),
                    title: 'testForm',
                    waitMsgTarget: true,
                    fieldDefaults: {
                        labelAlign: 'right',
                        labelWidth: 85,
                        msgTarget: 'side'
                    },
                    items: [{
                        xtype: 'fieldset',
                        title: 'Contact Information',
                        items: [{
                                xtype:'textfield',
                                fieldLabel: 'Name',
                                name: 'naziv'
                            }, {
                                xtype:'textfield',
                                fieldLabel: 'oib',
                                name: 'oib'
                            }, {
                                xtype:'textfield',
                                fieldLabel: 'mail',
                                name: 'email'
                        }]
                    }]

            });

    testForm.getForm().loadRecord(app.formStore);
 });

JSON

[
    {"naziv":"Lisa", "oib":"2545898545", "email":"lisa@simpson.com"}        
]
4

3 に答える 3

5

モデルとフォームのフィールド名は。と一致する必要があります。次に、を使用してフォームをロードできますloadRecord()。例えば:

var record = Ext.create('XYZ',{
    name: 'Abc',
    email: 'abc@abc.com'
});
formpanel.getForm().loadRecord(record);

または、すでにロードされているストアから値を取得します。

于 2011-06-02T12:46:29.037 に答える
3

アブデルオラカラの答えは素晴らしいです。ただし、ストアを使用せずにデータを入力する場合は、次のようにすることもできます。

var record = {
      data : {
         group : 'Moody Blues',
         text  : 'One of the greatest bands'
      }
};
formpanel.getForm().loadRecord(record);
于 2011-12-02T13:54:47.273 に答える
0

ExtDirectメソッドを使用することをお勧めします。このようにして、編集、削除などのすべての操作を非常にうまく実装できます。

于 2011-12-05T11:15:21.633 に答える