1

我目前使用多个对象来填充 extjs 表单的一部分,使用setValues(). 前任:

someForm.getForm().setValues({prop1: foo}); 

有没有办法可以命名我的表单元素object1.prop1object2.prop2。这样我就可以单身了someForm.getForm().setValues({object1: object1, object2: object2, ...})?即嵌入的对象将被解析出来。

此外,有没有办法在POSTto map ( object1.prop1, object1.prop2, ...) -->之前拦截上传object1: {prop1: *, prop2: *, ...}

这比必须做映射之类的事情要容易得多object1.prop1-> object1_prop1->object1.prop1

感谢您的任何帮助,您可以提供

4

1 回答 1

0

是的,您可以这样做,但方式与您指定的方式不同。会有两种情况:

1)您有一个表单(假设修改),并且您向服务器发出请求以获取数据。您可以做的是创建一个为表单字段分配名称的模型。并将模型分配给来自服务器的值。见下文,例如

// define StudentModel with fields firstName, lastName, address, and so on....
// form with fields, please have field attribute 'name' with values defined in model
// e.g. {xtype : 'textfield', name: 'firstName'}, {xtype : 'textfield', name: 'lastName'}, and so on
var form = this.getForm();
form.reader = Ext.create('Ext.data.reader.Json',{ // Use XML reader if you are using XML response.
    success: '@success',
    model: 'StudentModel'
});

form.load({ // load method will load data automatically from server to form fields
    url: '/getStudentData',
    params:{        
        studentId: 24
    }
});

2)其他情况是您在本地有可用的数据(假设在数组或变量中)并且您想将该数据分配给表单,使用 StudentModel 创建一个记录,如下所示,并将记录分配给表单:

var record = Ext.create('StudentModel', {
    firstName: 'Nandkumar',
    lastName: 'Tekale',
    address: 'RH 26, some street, city'
});

form.loadRecord(record); // You are done, all values to form are assigned.
于 2013-09-06T06:15:59.600 回答