在combobox和textfield之间动态切换extjs4

在combobox和textfield之间动态切换extjs4,extjs,extjs4,Extjs,Extjs4,我在网站上有一个复选框和一个组合框。选中该复选框后,我想将combobox更改为textfield,当然要保留所有选定值并将其放入textfield。当复选框被取消选中时,我想返回显示combobox和它以前选择的值 你知道如何在ExtJS4中实现这一点吗 谢谢首先,您的控制器中有一个侦听器,当选中复选框时,该侦听器将运行。在该函数中,您应该能够从组合框中提取值,将其存储在临时变量中,创建或可能取消隐藏文本字段,并将临时变量值放入其中 然后为取消选中的侦听器操作编写相反的代码 你在MVC工作吗

我在网站上有一个复选框和一个组合框。选中该复选框后,我想将combobox更改为textfield,当然要保留所有选定值并将其放入textfield。当复选框被取消选中时,我想返回显示combobox和它以前选择的值

你知道如何在ExtJS4中实现这一点吗


谢谢

首先,您的控制器中有一个侦听器,当选中复选框时,该侦听器将运行。在该函数中,您应该能够从组合框中提取值,将其存储在临时变量中,创建或可能取消隐藏文本字段,并将临时变量值放入其中

然后为取消选中的侦听器操作编写相反的代码

你在MVC工作吗


希望这有帮助

我们已经实施了类似的方法


在容器中放置一个组合框,并向其中添加一个文本字段。将侦听器添加到复选框,并在处理程序中使用combobox.hide和textfield.show。

您无法更改字段类型,因此只需使用两个字段并隐藏不相关的字段即可。聆听复选框上的更改事件,并进行适当的交换。
Ext.define('MyComboBox',{
    extend:'Ext.form.field.ComboBox',
    initComponent:function() {
        this.originalForceSelection = this.forceSelection;
        this.callParent(arguments);
        if(this.textFieldMode) this.setTextfieldMode(true);
    },
    function setTextfieldMode(bool)
    {
        if(bool) {
            this.forceSelection=false;
            this.setHideTrigger(true);
        } else {
            this.setHideTrigger(false);
            this.forceSelection=this.originalForceSelection;
        }
    }
});