【发布时间】:2014-02-21 23:54:43
【问题描述】:
我在网站上有一个复选框和一个组合框。选中该复选框后,我想将组合框更改为文本字段(当然,保留任何选定的值并将其放入文本字段中)。当复选框未选中时,我想返回显示组合框(它是以前选择的值)。
知道如何在 ExtJS4 中实现这一点吗?
谢谢
【问题讨论】:
-
您无法更改字段类型,因此只需设置 2 个字段并隐藏不相关的字段。监听复选框上的更改事件并进行适当的交换。
我在网站上有一个复选框和一个组合框。选中该复选框后,我想将组合框更改为文本字段(当然,保留任何选定的值并将其放入文本字段中)。当复选框未选中时,我想返回显示组合框(它是以前选择的值)。
知道如何在 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;
}
}
});
【讨论】: