2013-10-04 56 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){} 
    } 
});