我正在使用jQuery DataTables并且有一个名为“versions”的字段。表格的降序顺序如下所示:
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_'
}
});
}
我需要在这里改变什么逻辑?
答案 0 :(得分:0)
<强>解强>
您需要使用自定义排序功能正确订购版本号,请参阅下面的代码。
如果需要,请将0
中的"aTargets": [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' }
]
});
}
<强>样本强>
请参阅this jsFiddle以获取代码和演示。