テキストと数値の両方を含むデータの並べ替えを処理するのに苦労しています。私は datatables サーバーサイド プラグインを使用しており、ナチュラル ソート プラグインを含めようとしています。
次のようなデータを含む列があります。
Unit #1
Unit #10
Unit #2
列を並べ替えると並べ替えられますが、表示したい順序ではありません。これは私が必要なものです:
Unit #1
Unit #2
Unit #10
ここにある「自然な並べ替え」プラグインを使用した他の投稿を見ました: datatables 自然な並べ替え
自然な並べ替え関数の main.js ファイルに javascript を入れました。
これは、dataTable を初期化する方法です。
<script type="text/javascript">
var oTable = $("table.datatable_ss_1348508281").dataTable( {
"oLanguage": {"sSearch": "Search these results:"},
"aLengthMenu": [[10,20,50,100,500,1000], [10,20,50,100,500,1000]],
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "includes/units_dropdown_dt_process.php?id=1532&cont_id=unit_id",
"fnDrawCallback": function() {
//$('span.paginate_active').trigger('click');
},
"aoColumnDefs":[],
"aoColumns": [{"sType": "natural"}, null, null],
"aaSorting": [[ 0,"asc" ]],
"sScrollY": "300px",
} ).fnSetFilteringDelay(500);
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"natural-asc": function ( a, b ) {
return naturalSort(a,b);
},
"natural-desc": function ( a, b ) {
return naturalSort(a,b) * -1;
}
} );
</script>
問題は、それがまだテキストを使用してソートされており、数字を考慮していないことです...この問題を解決する方法について何かアイデアはありますか?
よろしくお願いします。