2011-09-12 16 views
1

FiltersFeature.jsプラグインを使用してグリッドパネルを正常に設定しました。私は私の列ヘッダーメニュー項目のフィルタオプションを見ることができます。私は文字列、リスト、日付範囲の種類を使用しており、リモートではなくローカルでのみフィルタリングしています。フィルタグリッド外のチェックボックス/ボタンを使用して「OR」ロジックを使用して1列の複数のフィルタをフィーチャする

現象は、期待どおりに動作します。

filters: [{ 
    type: 'list', 
    dataIndex: 'status', 
    options: ['New', 'Waiting', 'Reopened','Working'] 
}] 

正しくオプションのプロパティの各項目のチェックボックスのリストをレンダリングする:例えば、私は(設定、いない列を経由して)構成されたフィルタの持つ「状態」の欄があります。リストから「New」と「Working」の両方を選択すると、グリッドがフィルタリングされ、「New」または「Working」のステータスに一致するレコードが表示されます。

さて、私はプログラム的のようなものを使用してフィルタを追加する場合:

tasksGrid.filters.addFilters([{type: 'string', dataIndex: 'status', value: 'New'}]); 
tasksGrid.store.load(); 

それは「新」のマッチング状態にすべてのグリッドレコードをフィルタリングするために動作します。

問題は、 "AND"検索ではなく "OR"検索と同じビルトイン動作を得るために、複数のパラメータをaddFiltersメソッドに追加する方法を見つけることができないことです。ヘッダメニュー選択を使用して、私はgetFilterData()メソッドを介しfilterDataを見ることができる単一の列に複数のフィルタを適用

である:

[Object 
    data: Object 
    type: "list" 
    value: Array[2] 
    0: "New" 
    1: "Waiting" 
    length: 2 
    __proto__: Array[0] 
    __proto__: Object 
    field: "status" 
    __proto__: Object 
値は2つの値の配列として設定されている

。私のような何かをしようとすると、しかし、私は私が試したので、私は、文字列の種類を使用するので、それが値を連結さ考え出し

[Object 
    data: Object 
    type: "string" 
    value: "New,Waiting" 
    __proto__: Object 
    field: "status" 
    __proto__: Object 

tasksGrid.filters.addFilters([{type: 'string', dataIndex: 'status', value: ['New','Waiting']}]); 

を私はfilterDataのための次のような結果を得ますフィルタ設定で定義されている「list」のタイプで、次のエラーが表示されます。

Uncaught TypeError: Cannot call method 'on' of undefined ... ListMenu.js:83

ご協力いただけると助かります。

おかげで、

セス

答えて

0

は、私が何をしようとする上で少し混乱しています。あなただけのフィルタの値を設定したい場合は、私は信じてこれを使用することができます:

tasksGrid.filters.getFilter('status').setValue(["New", "Waiting"]); 

あなたは、グリッドを作成した後に実際のフィルタを追加しようとしている場合は、私はUXのためのドキュメントを見ました。 ListFilterとux.ListMenuを使用していて、あらかじめ選択されている特定のフィルタを使用して作成することはできません。私はリストフィルタを作成するためのコードをもう少し掘り下げなければならないでしょう。

関連する問題