我使用jQuery数据表,并有一个名为"版本"的字段。按降序对表进行一般排序如下所示:
2.3
2.2
2.12
2.11
2.1
但是我需要按降序排序,如下所示:
2.12
2.11
2.3
2.2
2.1
JavaScript代码:
function TestTable1(searchLabel) {
$('#datatable-1').dataTable({
"aaSorting": [
[0, "asc"]
],
"sDom": "<'box-content'<'col-sm-6'f><'col-sm-6 text-right'l><'clearfix'>>rt<'box-content'<'col-sm-6'i><'col-sm-6 text-right'p><'clearfix'>>",
"sPaginationType": "bootstrap",
"oLanguage": {
"sSearch": "Search in " + searchLabel + ":<br>",
"sLengthMenu": '_MENU_'
}
});
}
这里我需要改变的逻辑是什么?
<解决方案/strong>
您需要使用自定义排序函数来正确排序版本号,参见下面的代码。
如果需要,将"aTargets": [0]
中的0
改为版本列的相应从零开始的索引。
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"version-pre": function ( d ) {
var a = d.split("."), res = "";
for(var i = 0; i < a.length; i++) {
res += ("0000000000" + a[i]).slice(-10);
}
return res;
},
"version-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"version-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
function TestTable1(searchLabel) {
$('#datatable-1').dataTable({
"aaSorting": [[0, "asc"]],
"sDom": "<'box-content'<'col-sm-6'f><'col-sm-6 text-right'l><'clearfix'>>rt<'box-content'<'col-sm-6'i><'col-sm-6 text-right'p><'clearfix'>>",
"sPaginationType": "bootstrap",
"oLanguage": {
"sSearch": "Search in " + searchLabel + ":<br>",
"sLengthMenu": '_MENU_'
},
"aoColumnDefs": [
{ "aTargets": [0], "sType": 'version' }
]
});
}
演示strong>