我想知道有没有办法为extjs中的组合框动态隐藏/显示触发器?
有人可以建议答案吗?
答案 0 :(得分:2)
您可以使用组合框的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);
答案 1 :(得分:1)
我使用了combo.triggerEl.hide()或combo.triggerEl.show()。它对我有用。感谢Sra的帮助。