2012-02-01 4 views
1

tablesorterフィルタを使用して姓の列をフィルタリングできます。フィルターは、各名前の最初の文字から始まるものだけ一致させる必要があります。jquery tablesorterフィルタを使用して列のテキストの先頭をフィルタリングする

ギルバート

バギンズが

ゴッドフリー

フィルタテキストだけの「G」だった場合、私はこの結果をしたいだけだろう:

たとえば、あなたは、次の3つの名前を持っていたとしましょう

ギルバート

ゴッドフリー

そしてBagginsのどちらのgsとも一致しません。


いくつかのより多くの.tablesorterFilterのソースコードを勉強した後、私はそれを行う方法を見つけ出すことができました。

3つのパラメータを渡す関数を作成する必要があります。最初のパラメータは、HTML要素の内容です。 2番目のパラメータは、ユーザがフィルタコンテナに入力した単語の文字列配列です。 3番目のパラメータは、大文字と小文字の区別のためのブール値です。 .tablesorterFilter filterFunctionでこの関数への参照を渡します。私は.tablesorterFilterのデフォルトのhas_words関数をコピーして貼り付け、探している機能を提供するように変更しました。私はそれをfilterbyfirstcolumnという名前にし、filterFunctionとしてその参照を渡しました。

ここに私のプログラムから適切なコードスニペットです:

 function filterbyfirstcolumn(str, words, caseSensitive) { 
     var text = caseSensitive ? str : str.toLowerCase(); 

     var allwords = ""; 

     for (var i=0; i < words.length; i++) { 
      allwords += words[i]; 

      if (i != words.length - 1) 
       allwords += " "; 
     } 

     if (text.indexOf(allwords) != 0) 
      return false; 
     return true; 
    } 

    $("#tblSearchContacts") 
.tablesorter({debug: false, widgets: ["zebra"], 
       headers: { 
         0: { sorter: false }, 
         4: { sorter: false }, 
         5: { sorter: false }, 
         6: { sorter: false }, 
         7: { sorter: false }, 
         8: { sorter: false } 
         }, 
         sortList: [[1,0]]}) 
.tablesorterPager({ container: $("#pagerOne"), positionFixed: false, size : 20 }) 
.tablesorterFilter({filterContainer: $("#txtFilter"), 
        filterClearContainer: $("#btnClear"), 
        filterColumns: [3], 
        filterCaseSensitive: false, 
        filterFunction: filterbyfirstcolumn});` 

うまくいけば、他の人はこれが役に立つかもしれません。同様のテクニックを使用すると、フィルタを使ってあらゆる種類の素敵なことを行うことができます。

+0

私はちょうど解決策を探してGoogleを試したし、運がなかった。 filterFunctionは私が使用する必要があるかもしれませんが、実際に使用方法を説明するものは何も見つかりません。私はjavascriptとjqueryの新機能ですので、プラグインのコーディング方法はまだ分かりません。ソースコードを調べることで、これまでの啓示は得られていません。あなたはこれが一般的なリクエストであり、見つけるのは簡単な解決策だと思っていますが、たぶん私は正しい場所を探しているだけではありません。 :( – Mark

+0

[documentation](http://tablesorter.com/docs/index.html#Examples) – Andrew

答えて

0

githubにtablesorterプラグインのフォークがあります。私は最近filter widgetを更新して、filter_startsWithという名前のオプションを含むように更新しました。

悲しいことに、現時点では、フィルタウィジェットはポケットベルプラグインでうまく動作しません。そのため、両方のプラグインが必要な場合、この解決策がうまくいかない場合があります。

関連する問題