2010-08-05 60 views
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存儲對象獲取數據。

提前致謝。

+0

'store.load()'是異步的 - 你試過'store.load({回調:函數(){simple.render();}} )'?編輯:可能有點晚了 – 2011-04-01 11:47:10

回答