Я хочу знать, есть ли способ скрыть/показать триггер динамически для комбинированного поля в extjs?скрывать/показывать триггер динамически для combobox в extjs
Может ли кто-нибудь предложить вам ответ?
Я хочу знать, есть ли способ скрыть/показать триггер динамически для комбинированного поля в extjs?скрывать/показывать триггер динамически для combobox в extjs
Может ли кто-нибудь предложить вам ответ?
я использовал combo.triggerEl.hide() или combo.triggerEl.show(). Это сработало для меня. Спасибо за помощь.
Ну, вы можете использовать свойство конфигурации 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);
Могу ли я узнать, что слушатель onShowTrigger доступен для комбинированного блока или нет? –
@ramyasri Я отредактировал мой ответ – sra
Спасибо за помощь Sra. Я просто включил строку «combo.triggerEl.hide()»/«combo.triggerEl.show()». Это сработало для меня. –