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

Posted

技术标签:

【中文标题】extjs 3.4 ComboBox 发送错误的数据类型【英文标题】:extjs 3.4 ComboBox send wrong data type 【发布时间】:2013-05-03 17:34:16 【问题描述】:

这就是问题所在。

我有一家商店,其中有一个没有类型化的字段,名为 al_key al_key 实际上是来自服务器的 int

 al_key: 5512, description: "test"

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


    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

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

如何强制使用整数?

谢谢你,艾尔。

【问题讨论】:

我们能看到完整的存储(AlStore)定义吗? 【参考方案1】:

对不起…… 这似乎是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"

为什么??!

【讨论】:

【参考方案2】:

已解决! 问题是 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!! A.

【讨论】:

以上是关于extjs 3.4 ComboBox 发送错误的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 3.4 ComboBox:首次加载组合框时如何预选一条记录?

ExtJs 6.2 ComboBox 不发送远程过滤器

从组合框中删除 extjs 3.4 中的参数

怎么为extjs的combobox添加监听器?

ExtJS 组合框错误:无法读取未定义的属性“存储”

extjs 3.4中布局窗口内的表单面板