2012-11-16 77 views
0

我有一個商店和FormPanel。我想從面板中的商店中顯示數據。
如果我這樣做:將數據加載到Ext.FormPanel

var store_form=null; 
store_form = new Ext.data.Store({     
     url: url_servlet+"kadastr_zemform.jsp", 
     reader: new Ext.data.XmlReader({ 
     totalProperty: "results", 
     record: "contact", 
         fields: [ 
     ]}), 
     listeners: { 
     'load' : function(store_form,records,options) { 
        this.loaded = true; 
        var record = store_form.getAt(0); 
        podform.getForm().loadRecord(record); 
       } 
      } 
    });  

}); 
store_form.load(); 

所有320交織的罰款。

但是,如果我在FormPanel中的監聽器調用loadRecord()我得到錯誤:

TypeError: store_form.getAt is not a function 
(624 out of range 31) 

我的代碼。

var podform = new Ext.FormPanel({ 
    labelAlign: 'left', 
    id: 'tab_6', 
    frame:true, 
    title: 'Договоры подряда', 
    bodyStyle:'padding:5px 5px 0', 
    width: 600, 
    listeners: { 
     'activate' : function(store_form,records,options) { 
     console.log("store:"+store_form); 
     this.loaded = true; 
     //alert("loaded"); 
     //console.log(store.getAt(0)); 
     var record = store_form.getAt(0); 
     podform.getForm().loadRecord(record); 
     } 
    }, 
      fields[] 
}); 

它有什麼問題嗎?

+0

store_form是一種形式面板。它不是一家商店。所以它不包含任何這樣的方法。 –

+0

不理解你。 'store_form = new Ext.data.Store({' –

+0

你已經在表單面板的activate監聽器中使用了** store_form **變量,但是這個變量是一個表單面板** this **參數,用於激活監聽器。想要使用這個變量,只需將activate listener中的變量名改爲其他變量即可。 –

回答

1

試試這個...

listeners: { 'activate' : function(form,records,options) 
{ 
    this.loaded = true; 
    var record = store_form.getAt(0); 
    podform.getForm().loadRecord(record); 
} 
+0

謝謝你的幫助) –