0
Hi ExtJS开发者。我是ExtJS的新手,并试图用从外部XML资源读取的数据预填充基本表单。我似乎无法获得预装数据,以下是代码:使用Ext.data.Store预先填充一个简单的Ext.FormPanel
Ext.onReady(function(){
// getting the UUID from what is passed on by REST Controller
var myuuid = location.pathname;
var myurl = myuuid.replace('/edit/director','');
// read data from url and store
var store = new Ext.data.Store({
// load using HTTP, point this to the xml you want to test
url: myurl,
// the return will be XML, so lets set up a reader
reader: new Ext.data.XmlReader({
// records will have a "stats tag
record: 'stats',
id: 'serial-number',
}, [
// set up the fields mapping into the xml doc
{name: 'director', mapping: 'director'},
'director-phone', 'director-phone-ext', 'director-email', 'website','title','published-name'
])
});
// create a form
var simple = new Ext.FormPanel({
labelWidth: 75, // label settings here cascade unless overridden
store: store,
renderTo: 'example-form',
url:'save-form.php',
frame:true,
title: 'Edit Director Form',
bodyStyle:'padding:5px 5px 0',
width: 350,
defaults: {width: 230},
defaultType: 'textfield',
items: [{
fieldLabel: 'Director',
name: 'director',
displayField: 'director',
valueField: 'director',
},{
fieldLabel: 'Telephone',
name: 'director-phone',
dataIndex: 'director-phone'
},{
fieldLabel: 'Extension',
name: 'director-phone-ext',
dataIndex: 'director-phone-ext'
}, {
fieldLabel: 'Email',
name: 'director-email',
vtype:'email'
}
],
buttons: [{
text: 'Save'
},{
text: 'Cancel'
}]
});
store.load();
simple.render();
});
我已经测试Ext.data.store分开看,如果变量myurl实际上是得到正确的XML资源的路径,它是。此代码仍然不会'加载'读取的XML。
我在做什么错?我无法理解基本表单对象如何从XML存储对象获取数据。
提前致谢。
'store.load()'是异步的 - 你试过'store.load({回调:函数(){simple.render();}} )'?编辑:可能有点晚了 – 2011-04-01 11:47:10