現在のコード:
$('table').dataTable({
// display everything
"iDisplayLength": -1
});
あなたにできること:
oTable = $('table').dataTable({
// display everything
"iDisplayLength": -1
});
oTable.fnSort( [ [0,'desc'] ] ); // Sort by first column descending
しかし、以下のコメントで指摘されているように、これはよりクリーンな方法かもしれません。
$('table').dataTable({
// display everything
"iDisplayLength": -1,
"aaSorting": [[ 0, "desc" ]] // Sort by first column descending
});
DataTablesは、デフォルトのソート方法としてアルファベット順を使用します。これが実際にここで起こることです。
2つの解決策があります。
ユーザーが自分で列をソートできるようにする場合は、最初のソリューションを使用できます。
---------------最初の解決策:
DataTableプラグインに列の処理方法を指示する必要があります。 「aoColumns」プロパティを使用する必要があります。
$('table').dataTable({
// display everything
"iDisplayLength": -1,
"aoColumns":[
{"sType": "shaheenery-date"},
{"bSortable": true},
{"bSortable": true},
{"bSortable": true},
{"bSortable": true}
]
});
次に、「shaheenery-date-asc」および「shaheenery-date-desc」ソート方法を定義します。日付を数値形式に変換する関数「getDate」も必要です。
function getDate(a){
// This is an example:
var a = "Sunday November 6, 2011";
// your code =)
// ...
// ...
// You should output the result as YYYYMMDD
// With :
// - YYYY : Year
// - MM : Month
// - DD : Day
//
// Here the result would be:
var x = 20111106
return x;
}
jQuery.fn.dataTableExt.oSort['shaheenery-date-asc'] = function(a, b) {
var x = getDate(a);
var y = getDate(b);
var z = ((x < y) ? -1 : ((x > y) ? 1 : 0));
return z;
};
jQuery.fn.dataTableExt.oSort['shaheenery-date-desc'] = function(a, b) {
var x = getDate(a);
var y = getDate(b);
var z = ((x < y) ? 1 : ((x > y) ? -1 : 0));
return z;
};
--------------- 2番目のソリューション:
「aoColumns」プロパティも使用します。今回は、DataTableに、Unixタイムスタンプの日付を含む最後の列を非表示にするように指示します。また、この列を「aaSorting」でソートするためのデフォルトの列として定義する必要があります。
$('table').dataTable({
// display everything
"iDisplayLength": -1,
"aaSorting": [[ 5, "desc" ]],
"aoColumns":[
{"bSortable": false},
{"bSortable": true},
{"bSortable": true},
{"bSortable": true},
{"bVisible": false}
]
});
oTable = $('#DataTables_Table_0').dataTable({ //table id -->DataTables_Table_0
iVote: -1, //field name
"bRetrieve":true
});
oTable.fnSort( [ [1,'desc'] ] ); // Sort by second column descending
データテーブルの最新バージョンを使用すると、列インデックスでソートできます
var data_table = $('#data-table').DataTable();
data_table.order( [7,'desc'] ).draw();
お役に立てれば。
$( '#id')。dataTable({ "bSort":true、 "aoColumnDefs": 'bSortable':false、 ' aTargets ':[1]} });