4

実際の例、通貨を「34 566.00 ek」の形式でソートする方法を教えてください。DataTables スクリプトで。

JSFiddle の例を次に示します: http://jsfiddle.net/HEDvf/643/

$('#example').dataTable({
   "aoColumns": [
    null,
   ],        
  "aaSorting": [[ 0, "desc" ]],
  "bStateSave": false,
  "iDisplayLength": 50,
});
4

3 に答える 3

12

非常に広範なデータテーブルのドキュメントをご覧ください。そこには、データテーブルで発生するほとんどすべての問題に対する簡単な解決策があります。たとえば、通貨列の並べ替えサポートを追加するための小さなプラグイン関数があります。

あなたが得たものに基づく例:

// add sorting methods for currency columns
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "currency-pre": function (a) {
        a = (a === "-") ? 0 : a.replace(/[^\d\-\.]/g, "");
        return parseFloat(a);
    },
    "currency-asc": function (a, b) {
        return a - b;
    },
    "currency-desc": function (a, b) {
        return b - a;
    }
});

// initialize datatable and explicitly set the column type to "currency"
$('#example').dataTable({
    "aoColumns": [{"sType": "currency"}],
    "aaSorting": [[0, "desc"]],
    "bStateSave": false,
    "iDisplayLength": 50,
});

ドキュメントへのリンク:

並べ替え: http://datatables.net/plug-ins/sorting#currency

Datatables は列の種類を自動的に検出することもできますが、さまざまな書式設定があると少し複雑になります。タイプ検出: http://datatables.net/plug-ins/type-detection#currency

于 2013-09-03T16:45:26.270 に答える
0

汚い解決策かもしれませんが、それを使用して文字列から数値形式 (,) を削除することもできます

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "currency-pre": function (a) {
        console.log("PRE "+a);
        
        a = (a === "-") ? 0 : a.split(',').join('').replace(/[^\d\-\.]/g, "");
        return parseFloat(a);
    },
    "currency-asc": function (a, b) {
        console.log("ASC "+a);
        return a - b;
    },
    "currency-desc": function (a, b) {
        console.log("DESC "+a);
        return b - a;
    }
});
于 2021-10-05T06:55:30.133 に答える