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