Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在extjs中动态创建组合框multiselect/singleselect_Javascript_Extjs_Extjs4.1 - Fatal编程技术网

Javascript 如何在extjs中动态创建组合框multiselect/singleselect

Javascript 如何在extjs中动态创建组合框multiselect/singleselect,javascript,extjs,extjs4.1,Javascript,Extjs,Extjs4.1,我正在使用extjs4.1中从组合框扩展的Boxselect。根据某些条件,我需要选择单个或多个 这是我的密码 bool result; result = getData(); if(result) { Ext.getCmp("combo1").multiSelect =true } 这不会将组合框更改为multiselect。有什么想法吗 尝试使用Ext.apply方法 combo = Ext.getCmp..... Ext.apply(combo, {multiSelect: tr

我正在使用extjs4.1中从组合框扩展的Boxselect。根据某些条件,我需要选择单个或多个

这是我的密码

bool result;
result = getData();
if(result)
{
  Ext.getCmp("combo1").multiSelect =true
}

这不会将组合框更改为multiselect。有什么想法吗

尝试使用Ext.apply方法

combo = Ext.getCmp.....  
Ext.apply(combo, {multiSelect: true});

multiSelect
选项更改时,必须强制重新创建选择器。为此,您需要删除组合的属性
picker

 combo.multiSelect = true;
 delete combo.picker;
完整示例:

Ext.widget('panel', {
    renderTo: Ext.getBody(),
    layout: {type: 'vbox', align: 'center'},
    margin: 10,
    defaults: {width: 200, margin: 5},
    items: [{
        xtype: 'combo',
        store: ['Foo', 'Bar', 'Baz']
    },{
        xtype: 'displayfield',
        fieldLabel: 'Multiselect is',
        value: "OFF"
    },{
        xtype: 'button',
        text: "Toggle multiselect",
        handler: function() {
            var panel = this.up(),
                combo = panel.down('combo'),
                outField = panel.down('displayfield'),
                newValue = !combo.multiSelect;
            combo.multiSelect = newValue;
            // force recreation of picker
            delete combo.picker;
            outField.setValue(newValue ? "ON" : "OFF");
        }
    }]
});
-1,apply()将具有与问题中的代码完全相同的效果。