2013-02-07 48 views
4

我有一個自定義的選擇器類,裏面有一些文本字段和一個組合框。應用程序中的網格將此選取器用作列的編輯器,但問題是,無論何時單擊組合框,選取器都會失去焦點並關閉。有沒有一種方法來修改選取器,以便將選擇數據使用組合框?ExtJS 4.1.x - Pickbox with Combobox裏面

+1

如果可能的話,請共享代碼 – SharpCoder

+1

使用「CD」 S的解決方法,HTTP ://jsfiddle.net/8E85C/ – kdaShivantha

回答

1

我通過使用collapseIf函數找到了解決此問題的解決方法。

此代碼檢查如果事件目標是BoundList(內部使用DataViewComboBox)和選擇器組件的一部分:

collapseIf: Ext.Function.createInterceptor(Ext.form.field.Picker.prototype.collapseIf, function (e) { 
     var boundList = Ext.get(e.target).up('.x-boundlist'), 
      cmp; 

     cmp = boundList && Ext.getCmp(boundList.id); 

     if (cmp && this.picker.down('#' + cmp.pickerField.id)){ 
      return false; 
     } 
    }) 
+1

有一個mousedown處理程序附加到一個名爲「mimicBlur」的函數,該函數也隱藏了「triggerBlur」中的選擇器。所以我認爲它想要將你的解決方法添加到mimicBlur和collapseIf方法。 – kdaShivantha

+0

請參閱:http://www.sencha.com/forum/showthread.php?243946-Pickerfield-s-picker-ignores-collapseIf-when-used-in-grid-editor – Mohammadreza