2013-06-12 79 views

回答

1

我用combo.triggerEl.hide()或combo.triggerEl.show()調用此方法。它爲我工作。感謝Sra的幫助。

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()」這一行。它爲我工作。 –