aTypes
データテーブルに新しい並べ替え関数のセットを提供してから、対応するデータ型(フォーマットされた番号など)を自動的に割り当てる関数を追加する必要があります-http: //datatables.net/release-datatables/examples/plug-ins/ sort_plugin.html
ここで注意が必要なのは、jquery_pivot.js(pivot.jsに付属
)がnull値に改行しないスペースポイント()を使用することです(https://github.com/rjackson/pivot.js/blob/master/jquery_pivot.js #L347)。jquery_pivot.jsは単なる推奨UI実装であり、アプリに合わせて自由に変更できるようにすることをお勧めします。ただし、変更したくない場合は、2つの潜在的に望ましくない動作が残ります。
- dataTablesの自動型検出は、を介してトリップし、
観察したように、列を並べ替えの英数字として扱います。
- 数値の並べ替えを検出する場合でも、nullは通常、セットの最小値または最大値として扱われます。私のアプリケーションでは、この
NULLS LAST
アプローチを好みます(つまり、昇順/降順の並べ替え順序に関係なく、常にテーブルの最後に表示されます)。
私の解決策は最も洗練されたものとはほど遠いですが、ここに私のコードがあります:
ソート関数:
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"formatted-num-pre": function ( a ) {
a = (a===' ') ? NaN : a.replace( /[^\d\-\.]/g, "" );
return parseFloat( a );
},
"formatted-num-asc": function ( a, b ) {
if(isNaN(a)) return 1;
if(isNaN(b)) return -1;
return a-b;
},
"formatted-num-desc": function ( a, b ) {
if(isNaN(a)) return 1;
if(isNaN(b)) return -1;
return b-a;
}});
タイプ検出:
jQuery.fn.dataTableExt.aTypes.unshift(
function (data) {
return (data.charAt(0)==='$'||data===' ')?'formatted-num':null;
});
それが役に立てば幸い!