extjs 3.4 ComboBox发送错误的数据类型

时间:2013-05-03 17:34:16

标签: parsing extjs combobox extjs3

这就是问题所在。

我有一个商店,我有一个名为al_key的没有典型的fiels al_key实际上是来自服务器的int

{ al_key: 5512, description: "test"}

我将这些数据加载到网格面板中,然后使用从该行获取记录的表单编辑记录。在表单中,我有一个名为“AL VALUE”的组合框,用al_key键预选。

{
    xtype: 'combo',
    triggerAction: 'all',
    store: 'AlStore',
    forceSelection: true,
    allowBlank: true,
    editable: false,
    fieldLabel: 'AL VALUE',
    name: 'al_key',
    hiddenName: 'al_key',
    displayField: 'text',
    valueField: 'id',
    disabled: true
}

现在,问题是:当我加载Record(getForm()。loadRecord(rec))时,字段al_key是一个数字,当我提交表单时它会发送一个数字。 当我更改组合的值时,fiel al_key变为STRING并发送一个STRING!

如何强制使用整数?

谢谢Al。

2 个答案:

答案 0 :(得分:0)

对不起...... 这似乎是FormPanel的一个问题。 当我打电话时:this.page.dataGrid.store.insert(0, new this.page.dataGrid.store.recordType(this.getForm().getValues())); this.getForm().getValues()返回此对象: al_key: "4088" cod_aerom: "1458"

WHY ??!

答案 1 :(得分:0)

解决了! 问题是FORM不知道商店配置,它将所有数据作为普通表单传递。 所以,如果我以这种方式填满商店: this.page.dataGrid.store.recordType(this.getForm().getValues())); 它会插入所有字符串。 这是我的解决方法..

MyRecordType  = Ext.data.Record.create(this.page.dataGrid.store.fields.keys);
var myRec = new MyRecordType();
this.getForm().updateRecord(myRec);
this.page.dataGrid.store.add(myRec);
this.page.dataGrid.store.save();

TNX !! 甲