2017-06-16 6 views
0

私は1つの列にスペースとして何千もの区切り文字を持つテーブルを持っています。そして、この(そしてこれだけの)特定の列でテーブルをソートできるようにする必要があります。jquery datatables - スペースを1000個の区切り文字として扱う方法は?

私はドキュメントが{thousands: " "}オプションを示唆しているのを見ましたが、これはうまくいかないようです。ここ

フィドル: https://jsfiddle.net/dpmL00wd/2/

000区切りを定義する適切な方法は何ですか?

答えて

0

language.thousandsは出力専用です。正しいオプションはlanguage.decimalで、これはdataTablesソートアルゴリズムの調整に使用されます。しかし、小数を' 'に設定することは無視されます。つまり、デフォルト値は空です。''はドットに戻ります。明らかに' '''と認識されます。

テーブルをフィルタリングまたはオーダーしたいときに正しい番号を返すのはどうですか?

{ targets: [0], 
    orderable: true, 
    render: function(data, type) { 
    if (type != 'display') { 
     return parseInt(data.replace(' ', '')) 
    } 
    return data 
    } 
}, 

以上の列が/ソート命じたが、まだ列に2 300を表示したときの数として2300を返します。

更新フィドル - >https://jsfiddle.net/dpmL00wd/4/

0
jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "numeric-comma-pre": function (a) { 
     var x = a.replace(/\s/, ""); 
     return parseFloat(x); 
    }, 

    "numeric-comma-asc": function (a, b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 

    "numeric-comma-desc": function (a, b) { 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 
$(document).ready(function(){ 
    var table = $('#example').DataTable({ 
      columnDefs: [ 

     {type: 'numeric-comma', targets: [0], orderable: true}, 
      { targets: '_all', orderable: false } 
     ], 
     language: { 
      thousands: ' ' 
     } 
    }); 
}); 

https://jsfiddle.net/dpmL00wd/5/

関連する問題