Extjs 4.1 - 如何将数组加载到formpanel

时间:2013-10-04 02:22:36

标签: extjs extjs4.1

我有一个窗口,其中包含

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

我使用load form从服务器获取数据到我的表单

    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"]}}

但是我的表单在加载成功之后就是空白(未设置值)

如何做到这一点,谢谢

1 个答案:

答案 0 :(得分: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){}
  }
});