2016-09-29 21 views
0

私が探しているのは、Handsontableスプレッドシートのプラグインの機能を列挙する個別の列です(これは正確にdatatablesスプレッドシートの例です)。個々の列はHandsontableでフィルタリングされますか?

既に存在してHandsontableチームによって開発されたものであるだ:

  • 複数のフィルタリングエクセルのような(しかし、PROバージョンに含まれる)- 私の場合のための短所は、それは無料ではないということであり、それ私が探しているものにうまく収まりません。
  • ユーザ入力に基づいて、細胞(単数または複数)または列(複数可)をハイライト - コンは、私は、関連する行を表示する必要があることである

のようなものがありますHandsontableを使用するユーザーからの複数の入力に基づいて、関連する行のみをと表示していますか?

+0

結果の行を非表示にしたいが、HidesontableのHidingはPROバージョンhttps://docs.handsontable.com/pro/1.7.0/demo-hiding-rows.htmlにあります。 –

+0

それから回避策はありますか? – fab

答えて

1

このblogの解決策に基づいて、私は解決策をコード化することができました。

See this JS fiddle that answers all my requirements.

私が探していた主な機能は、このいずれかです。

私はデータを比較し、入力フィールド( searchFields)とストリングスの同期テーブルを保持している何をしたか
// The function push every row satisfying all the input values into an array that is loaded 
function filter() { 
var row, r_len, col, c_len; 
var data = myData; // Keeping the integrity of the original data 
var array = []; 
var match = true; 
for (row = 0, r_len = data.length; row < r_len; row++) { 
    for(col = 0, c_len = searchFields.length; col < c_len; col++) { 
     if(('' + data[row][col]).toLowerCase().indexOf(searchFields[col]) > -1); 
      else match=false; 
     } 
     if(match) array.push(data[row]); 
     match = true; 
    } 
    hot.loadData(array); 
} 

入力とその対応する列との間の各行の対応する行を配列にプッシュし、最後に結果の配列を表示する。このファンクションは、入力フィールドの変更に対して呼び出され、結果としてライブテーブルのフィルタリングが行われます。

私は〜10k行のソリューションを試しましたが、Chrome、Firefox、IEではパフォーマンス上の問題はありません。

はまた、私はは値を編集する際に、元のデータと同期した現在表示されたテーブルを維持するための解決策を見つけることができたことに注意してください、これは、この質問の範囲外IMOです。あなたがこれに興味があるなら、コメントで私に教えてください。

関連する問題