2013-06-12 3 views

ответ

1

я использовал combo.triggerEl.hide() или combo.triggerEl.show(). Это сработало для меня. Спасибо за помощь.

1

Ну, вы можете использовать свойство конфигурации 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); 
+0

Могу ли я узнать, что слушатель onShowTrigger доступен для комбинированного блока или нет? –

+0

@ramyasri Я отредактировал мой ответ – sra

+0

Спасибо за помощь Sra. Я просто включил строку «combo.triggerEl.hide()»/«combo.triggerEl.show()». Это сработало для меня. –

Смежные вопросы