如何使用数据存储使用JSON数据填充表单?如何将文本字段与store,model连接?
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"}
]
答案 0 :(得分:5)
模型和表单的字段名称应匹配。然后,您可以使用loadRecord()
加载表单。例如:
var record = Ext.create('XYZ',{
name: 'Abc',
email: 'abc@abc.com'
});
formpanel.getForm().loadRecord(record);
或者,从已加载的商店中获取值。
答案 1 :(得分:3)
Abdel Olakara的答案很有效。但是如果你想在不使用商店的情况下进行填充,你也可以这样做:
var record = {
data : {
group : 'Moody Blues',
text : 'One of the greatest bands'
}
};
formpanel.getForm().loadRecord(record);
答案 2 :(得分:0)
我建议你使用Ext Direct方法。通过这种方式,您可以实现非常好的和干净的所有操作:编辑,删除等。