2013-10-04 88 views
2

我有了EXTJS 4.1 - 如何加載陣列FormPanel中

items:{ 
     xtype:'form', 
     items: [{ 
      xtype: 'numberfield', 
      fieldLabel: '1', 
      name: 'va[]' 
     },{ 
      xtype: 'textfield', 
      fieldLabel: '2', 
      name: 'va[]' 
     },{ 
      xtype: 'textfield', 
      fieldLabel: '3', 
      name: 'va[]' 
     }] 
    }, 

我使用負載形式從服務器獲取數據,以我的表單類的物品窗口

var form = win.down('form').getForm(); 
    form.load({   
     url: 'load.php', 
     success:function(form, action){ 
      win.show();   
     } 
    }); 

我的JSON的樣子

{"success":true,"data":{"va":["1","2","3"]}} 

但負載成功後我的狀態則是空白(未設置值)

如何做到這一點謝謝

+0

您將需要修改你的JSON和領域提供不同的名稱,請參閱[這個答案](http://stackoverflow.com/a/18651131/1065180) –

+0

@NandkumarTekale B/C項目在我的形式是動態的,如果我使用明確的名字,那麼很難管理:|。 – DeLe

回答

1

雖然action您可以訪問response。然後您可以獲取數據並手動分配。您可能需要一個獨特的itemId,因爲您的所有字段都具有相同的名稱。喜歡的東西:

form.load({ 
    url: 'load.php', 
    success: function(form, action) { 
    var me = this, 
     data, i; 
    try { 
     data = Ext.decode(action.response.responseText); 
     console.log(data); //outputs data.success, data.data.va in your console. 
     if(data.data && Ext.isArray(data.data.va)) { 
     for(i = 0; i < data.va.length; i++) { 
      //here do your logic to populate the fields... 
     } 
     } 
    }catch(e){} 
    } 
});