【问题标题】:switch between combobox and textfield dynamically extjs4在组合框和文本字段之间动态切换 extjs4
【发布时间】:2014-02-21 23:54:43
【问题描述】:

我在网站上有一个复选框和一个组合框。选中该复选框后,我想将组合框更改为文本字段(当然,保留任何选定的值并将其放入文本字​​段中)。当复选框未选中时,我想返回显示组合框(它是以前选择的值)。

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

谢谢

【问题讨论】:

  • 您无法更改字段类型,因此只需设置 2 个字段并隐藏不相关的字段。监听复选框上的更改事件并进行适当的交换。

标签: extjs extjs4


【解决方案1】:

你应该先在你的控制器中设置一个监听器,当复选框被选中时运行。在该函数中,您应该能够从组合框中提取值,将其存储在临时变量中,创建(或可能取消隐藏)您的文本字段,然后将您的临时变量值放在那里。

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

你在 MVC 中工作吗?

希望对你有帮助

【讨论】:

    【解决方案2】:

    我们实施了类似的方法。

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

    【讨论】:

      【解决方案3】:
      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;
              }
          }
      }); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        相关资源
        最近更新 更多