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 发送错误的数据类型的主要内容,如果未能解决你的问题,请参考以下文章