2016-09-09 7 views
0

jquery tablesorter2(https://mottie.github.io/tablesorter/docs/index.html)をフィルタウィジェットで使用します。jquery tablesorter2:生成されたドロップダウンの内容をソートする方法

ここでは、生成されたドロップダウン(テーブル値ではない)の値の並べ替え順序をascからdescに変更したいと考えています。 私はこのためにjsFiddleをした:

http://jsfiddle.net/ru5zLjk8/

ここでは、割引列を見つけることができます。私はその値を並べ替えることを望んでいるので、最大の割引が最初にドロップダウンにあります。

あり、いくつかのオプションがありますが、何も合うように思わない:

// each option has an associated function that returns a boolean 
    // function variables: 
    // e = exact text from cell 
    // n = normalized value returned by the column parser 
    // f = search filter input value 
    // i = column index 

多分これは完全にそれを行うには間違った場所ですか?

これを実現するには?

答えて

0

あなたは、その列(demo)あなたはまた、データの内部ソートを防ぐために、ヘッダに"filter-select-nosort"クラスを追加する必要があります

filter_selectSource: { 
    5: function(table, column, onlyAvail) { 
    // get an array of all table cell contents for a table column 
    var array = $.tablesorter.filter.getOptions(table, column, onlyAvail); 
    return array.sort(function(a, b) { 
     return a === b ? 0 : parseFloat(b) > parseFloat(a) ? 1 : -1 
    }); 
    } 
} 

をターゲットにfilter_selectSource optionを使用することができます。

ソートを変更するために"filter-select-desc-sort"クラスを追加することで、これを簡単に行うことができます。

+0

ありがとうございます。それは魅力のように働く。 しかし、ハードコードされた列(この例では "5")を取り除く方法はありますか?私はさまざまなテーブルのjsを再利用し、htmlだけを変更したいと思います( "filter-select-nosort"を追加してください)。 – Mlr

+0

'filter_selectSource'オプションは、インデックスの代わりにヘッダクラス名を使用することを許可します。しかし、 "filter-select-desc-sort"クラスを追加する機能を追加しました。これは、マスターブランチ[DEMO](http://jsfiddle.net/Mottie/ru5zLjk8/2/)で利用可能になりました。 – Mottie

+0

ああ、変更は 'jquery.tablesorter.widgets.js'ファイルではなく、' widget-filter.js'ファイルでのみ利用可能であることを指摘しておきます。新しいリリースが利用可能になったときにのみ更新されます。 – Mottie

関連する問題