如何在Extjs 4中提交组合框的fieldValue?

时间:2012-01-26 23:35:58

标签: extjs extjs4

我正在使用Extjs 4.0.7并且很难在combobox formPanel submit fieldValue combobox hiddenName hiddenName 1}}。

据我所知,这通常是通过将formPanel配置选项设置为您希望它将值提交为的值来实现的;比如在html中使用隐藏字段,但valueField选项现在似乎已从文档中删除,没有任何明显的替代选择。

那么如何继续提交我的xtype: 'combobox', name: 'shift', hiddenName: 'shiftid', id: 'shiftCombobox', fieldLabel: 'Shift', labelWidth: 30, width: 130, margin: '0 5', cls: 'shift', store: shiftStore, autoSelect: true, queryMode: 'local', displayField: 'name', valueField: 'objectid', autoSelect: true, handler: function() { //changeShift(); } 并在Extjs 4中使用shiftStore的值?

这是我的应用程序中的一个剪辑,我在其中定义了一个组合框:

Ext.define('shiftModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'objectid', type: 'int'},
        {name: 'name', type: 'string'}
    ]
});

这是{{1}}使用的模型:

{{1}}

1 个答案:

答案 0 :(得分:0)

我忘记了这段代码:

autoLoad: {
        //The callback here is needed to fix a bug and set a default value in the combobox. 
        scope: this,
        callback: function() {
            var comboBox = Ext.getCmp("teamCombobox");
            var store = comboBox.store;

            // set the value of the comboBox here
            comboBox.setValue(store.getAt('0').get('name'));
        }
    }

更新combobox商店combobox上的autoLoad,以便在加载时使用默认值。 我已将值设置为 name ,即displayValue。将值设置为相应的fieldValue,在我的例子中是一个名为 objectid 的字段

在我这样设置后,它可以工作:

comboBox.setValue(store.getAt('0').get('objectid'));

现在combox提交了真实的fieldValue,而不是我意外设置的文字值。

我仍然想知道是否有某种方法可以控制它。