在Ext JS中更改运行时组合框的外观

Change appearance of combo box at run time in Ext JS

本文关键字:组合 外观 运行时 Ext JS      更新时间:2023-09-26

我有一个要求,一个组件应该看起来像一个组合框时,它有多个值,像一个文本框时,它只有一个值。

而不是更改组件。我选择只是改变该组件的cls,这将使它看起来像一个组合框或一个文本框在运行时取决于在一个组合框中的项目的数目。

要做到这一点,我使用下面的

comboBox.removeCls('comboBoxWithNoImg');
comboBox.addCls('comboBoxWithImg');

但它不起作用。当我在此时检查它时,它在手表(调试器)中显示了更改的类,而不是在UI上。而且,它似乎没有被刷新或其他什么。

我还尝试了以下操作:

comboBox.cls = 'comboBoxWithImg';
comboBox.initialCls = 'comboBoxWithImg';
comboBox.listConfig.cls = 'comboBoxWithImg';
comboBox.initialConfig.cls= 'comboBoxWithImg';
comboBox.fieldCls= 'comboBoxWithImg';

但是它在UI上没有改变。

请帮忙,我在这个问题上花了很多时间…

如果您希望隐藏和显示与组合框一起显示的箭头图标,那么您可以在组合框的触发器上调用hideshow函数,如下所示

comboBox.triggerEl.hide();
comboBox.triggerEl.show();

如果你想让组合框看起来像一个普通的文本框,你可以隐藏触发器

comboBox.setHideTrigger(true);