我想知道是否有任何方法可以动态隐藏/显示 extjs 中组合框的触发器?
有人可以建议答案吗?
那么你可以使用hideTrigger
组合框的配置属性。如果您需要在呈现组合后动态执行此操作,您可以执行以下操作:
(以下是这样做的,因为当使用一个以上触发器时,一个错误会弄乱宽度。最后一个已知的错误版本 4.1.3)
onShowTrigger: function (show) {
if (show) {
this.triggerEl.each(function (el, c, i) {
if (i === 0) { // the ident of the trigger. will start with 0
el.setWidth(el.originWidth, false);
el.setVisible(true);
}
});
} else {
this.triggerEl.each(function (el, c, i) {
if (i === 0) {
el.originWidth = el.getWidth();
el.setWidth(0, false);
el.setVisible(false);
}
});
}
// Version specific methods
if (Ext.lastRegisteredVersion.shortVersion > 407) {
this.updateLayout();
} else {
this.updateEditState();
}
}
出口
上面的代码应该在一个组合框的扩展中实现,比如
Ext.define('Ext.ux.form.field.CustomCombo', {
extend: 'Ext.form.field.ComboBox',
alias: 'widget.customcombo',
onShowTrigger: function (show) {
//...
}
});
您可以在哪里自己调用此方法,例如
var combo = Ext.widget('customcombo');
combo.onShowTrigger(false);
我使用了 combo.triggerEl.hide() 或 combo.triggerEl.show()。它对我有用。感谢您的帮助。