我认为我知道这个问题出在哪里,但是我不知道如何适当地解决它,所以我希望这里有人遇到过类似的问题,并设法修复它。我有一个表格,其中有几列,除了一列之外,所有列都按排序方式工作。下面是该列及其排序工作的屏幕截图。
如您所见,它不按字母数字逻辑进行排序。我的假设是,一些名称中有逗号、括号、方括号等字符。那么,我该如何解决这个问题,以便使用datatables插件对其进行字母数字排序?有什么想法吗?
****编辑****
这是我正在使用的代码,对于除此列之外的所有内容都有效。
如您所见,它不按字母数字逻辑进行排序。我的假设是,一些名称中有逗号、括号、方括号等字符。那么,我该如何解决这个问题,以便使用datatables插件对其进行字母数字排序?有什么想法吗?
****编辑****
这是我正在使用的代码,对于除此列之外的所有内容都有效。
jQuery.fn.dataTableExt.oSort['num-asc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['num-desc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
$(document).ready(function() {
$('#ledger').dataTable({
bAutoWidth: false,
bJQueryUI : true,
bProcessing: true,
bServerSide: false,
sPaginationType: "full_numbers",
bStateSave : false,
bUseRendered: false,
iDisplayLength: ${entriesValue},
sDom: mw.superadmin.datatable.relatedListDom,
aLengthMenu: mw.superadmin.datatable.relatedListLengthMenu,
aaSorting: [[0,'asc']],
aoColumns: [
null,
{ "iDataSort": 2},
{ "bVisible": false, "sType": "num"},
{ "iDataSort": 4, "bSortable": true },
{ "bVisible": false, "sType": "num"}
]
});