2016-05-22 5 views
0

2フィールドのコンボがあり、ローカルストアが外部から手動でロードされています。 私は入力してフィルタリングするときに、このコンボを展開状態にします。Ext JS Combo。フィルタリング中に拡大表示する

フィルターでリスナーをセットアップしました。フィルタは正常に動作します。

this.listeners = { 
     beforequery: function(queryPlan){ 
      me.store.clearFilter(true); 
      me.store.filter(filter); 
      return true; 
     } 
    }; 

事は、私がコンボに入力を開始する場合、時にはそれが最初の文字を入力した後に開き、表示されるためにフィルタリングされた値があっても崩壊するということです。私は、フィルタリングされたリストを見るためにキーを押す必要があります。

しかし、バックスペースキーで文字を削除すると、開いたままになります。実際これが必要です。

私は、イベントチェーンでいくつかのトリックがあることを理解していますが、正確な方法を得ることはできません。 combo.expand()を手動で呼び出しても効果はありません。 typeAhead = trueまたはそうでないと意味がありません。 おそらく、displayFieldの代わりにdisplayTplを使用しているからです。

すべてのアイデア? ありがとうございます。

答えて

0

ないことが最善の解決策であるかどうかわからが、あなたのcomboのあなたのことができgetPicker()と、その中にあなたの表示/非表示のカスタムロジックでそれを表示/非表示に関連するイベントハンドラを追加します(beforehide例えばまたはあなたのロジックに合う他) 。

combo.getPicker().on(
    'beforehide', 
    function() { 
     // Your hide logic here 
    } 
); 

あなたのコントローラ内でこのような何かがaswell動作するはずですので、コンボピッカーコンポーネントは、Ext.view.Boundlistです:

init: function() { 
    this.control({ 
     'combo[name=myCombo] boundlist': { 
      beforehide: this.myHandler 
     } 
    }); 
} 

Fiddle

関連する問題