5

フィドルの例

私はhtmlテーブルを持っています:

_A_B_C_D_
|0|1|0|1|
|0|1|0|0|
|1|0|0|1|

ゼロ以外の列をフィルタリングしたい。jQuery dataTables を使用して (厳密な要件ではなく、現在使用しているものだけです)、次のフィルターを実行します。

// value is the column index, true simply informs the filter method to use regex
dataTable.fnFilter("[^0]", value, true); 

ただし、複数の列をフィルタリングすると、ANDフィルターが作成されます。したがって:

dataTable.fnFilter("[^0]", 0 /*A*/, true); 
dataTable.fnFilter("[^0]", 3 /*D*/, true); 

以下を作成します

_A_B_C_D_
|1|0|0|1|

次のテーブルを作成するOR動作が必要です。

_A_B_C_D_
|0|1|0|1|
|1|0|0|1|

列 Aがゼロでない場合、または Dがゼロでない場合。現在の構造でこれを実装する方法は考えられません。

AND の代わりに OR ロジックを使用してテーブルの列をフィルター処理するにはどうすればよいですか?

4

2 に答える 2

4

あなたのフィドルをモデルとして使用して、あなたが望む機能を提供するように更新しました。

チェックボックスをクリックするたびに dataTables フィルタリングを拡張します。

$.fn.dataTableExt.afnFiltering.push(
    function (settings, data, index) {
        var s = [0, 3, 5]; // columns to filter
        for (var i=0; i < s.length; i++) {
            if (data[s[i]] != 0) return true;
        }
        return false;
    }
);

フィドルに完全に統合:リンク

于 2013-03-27T17:01:08.153 に答える