yoh.suzuki
21 Oct 2011, 5:49 PM
When I load my Ext.data.Model instance into the Ext.form.Panel, the number fields and select fields don't get set correctly.
Here's some code that demonstrates this behavior:
Ext.setup({
onReady: function() {
Ext.define('SelectModel', { extend: 'Ext.data.Model', fields: [
{ name:'V', type:'int' },
{ name:'D', type:'string' }
]});
Ext.define('DemoModel', { extend: 'Ext.data.Model', fields: [
{ name:'String', type:'string', defaultValue:'Fantastic' },
{ name:'Number', type:'int', defaultValue:10000 },
{ name:'Select', type:'int', defaultValue:0 }
]});
var fieldset, form = Ext.create('Ext.form.Panel', {
fullscreen: true,
items: [
fieldset = Ext.create('Ext.form.FieldSet', {
title: 'wut',
items :[
{
xtype: 'textfield', name: 'String',
label: 'String (correct)'
},
{
xtype: 'numberfield', name: 'Number',
label: 'Number (incorrect)'
},
{
xtype: 'selectfield', name: 'Select', valueField:'V', displayField:'D',
label: 'Select (incorrect)',
store: Ext.create('Ext.data.JsonStore', {
model: 'SelectModel',
data: [
{V: 0, D: 'Selection_0'},
{V: 1, D: 'Selection_1'},
{V: 2, D: 'Selection_2'}
]
})
}
]
}),
{
xtype:'button',
text:'try loading a record',
handler: function() {
var record = Ext.create('DemoModel', {});
form.setRecord(record);
fieldset.setTitle(Ext.encode(record.data));
this.disable();
}
}
]
});
}
});
Here's some code that demonstrates this behavior:
Ext.setup({
onReady: function() {
Ext.define('SelectModel', { extend: 'Ext.data.Model', fields: [
{ name:'V', type:'int' },
{ name:'D', type:'string' }
]});
Ext.define('DemoModel', { extend: 'Ext.data.Model', fields: [
{ name:'String', type:'string', defaultValue:'Fantastic' },
{ name:'Number', type:'int', defaultValue:10000 },
{ name:'Select', type:'int', defaultValue:0 }
]});
var fieldset, form = Ext.create('Ext.form.Panel', {
fullscreen: true,
items: [
fieldset = Ext.create('Ext.form.FieldSet', {
title: 'wut',
items :[
{
xtype: 'textfield', name: 'String',
label: 'String (correct)'
},
{
xtype: 'numberfield', name: 'Number',
label: 'Number (incorrect)'
},
{
xtype: 'selectfield', name: 'Select', valueField:'V', displayField:'D',
label: 'Select (incorrect)',
store: Ext.create('Ext.data.JsonStore', {
model: 'SelectModel',
data: [
{V: 0, D: 'Selection_0'},
{V: 1, D: 'Selection_1'},
{V: 2, D: 'Selection_2'}
]
})
}
]
}),
{
xtype:'button',
text:'try loading a record',
handler: function() {
var record = Ext.create('DemoModel', {});
form.setRecord(record);
fieldset.setTitle(Ext.encode(record.data));
this.disable();
}
}
]
});
}
});