0

我有一个组合框,它有一个配置“forceSelection:true”。用户可以编辑组合框,例如:输入任意文本,然后立即点击重置按钮来重置组合框,但组合框不会重置为原始值。我该如何解决这个问题?

这是我描述问题的代码:

var states = Ext.create('Ext.data.Store', {

    fields: ['abbr', 'name'],

    data : [

        {"abbr":"AL", "name":"Alabama"},
        {"abbr":"AK", "name":"Alaska"},
        {"abbr":"AZ", "name":"Arizona"}
        //...
    ]
   });

   Ext.create('Ext.container.Container', {

    layout: 'hbox',

    margin: '50',

    renderTo: Ext.getBody(),

    items: [
        {
            xtype: 'combobox',
            margin: '0 10 0 0',
            fieldLabel: 'Choose State',
            forceSelection: true,
            store: states,
            queryMode: 'local',
            value: 'AL',
            displayField: 'name',
            valueField: 'abbr'

        },
        {
            xtype: 'button',
            text: 'reset',
            handler: function () {
                this.up('container').down('combobox').reset();
            }
        }
    ]
   });
   });
4

2 回答 2

1

嗨,请用这些代码更新您的按钮处理程序,即使启用了 forceeSelection,它在我的最后也能正常工作。

                        {
                            xtype: 'button',
                            text: 'reset',
                            handler: function () {
                                  var combo=this.up('container').down('combobox');
                                  combo.lastSelection ="Alabama";
                                  combo.setRawValue(combo.lastSelection);
                                  combo.callParent(arguments)
                            }
                        }
于 2013-11-15T04:49:19.197 回答
1

试试这些例子..

                Ext.onReady(function(){

                  var states = Ext.create('Ext.data.Store', {

                    fields: ['abbr', 'name'],

                    data : [

                        {"abbr":"AL", "name":"Alabama"},
                        {"abbr":"AK", "name":"Alaska"},
                        {"abbr":"AZ", "name":"Arizona"}
                        //...
                    ]
                   });

                   Ext.create('Ext.container.Container', {

                    layout: 'hbox',

                    margin: '50',

                    renderTo: Ext.getBody(),

                    items: [
                        {
                            xtype: 'combobox',
                            margin: '0 10 0 0',
                            fieldLabel: 'Choose State',
                            store: states,
                            queryMode: 'local',
                            value: 'AL',
                            displayField: 'name',
                            valueField: 'abbr'

                        },
                        {
                            xtype: 'button',
                            text: 'reset',
                            handler: function () {
                                 this.up('container').down('combobox').setValue("Alabama");
                            }
                        }
                    ]
                   });
                 });
于 2013-11-14T06:01:42.323 回答