数据表对字母数字列进行排序

时间:2016-09-02 13:53:48

标签: jquery datatables

我正在使用Datatables对ID列进行排序。

ID

MPT123

RST789

AZE190

如何根据数值对其进行排序 我试着做了

"columnDefs": [{
            targets: "datatable-nosort",
            orderable: false,
            bsort: false,
            sType: "numeric"
}]

但这并没有奏效。

2 个答案:

答案 0 :(得分:1)

我得到了它,发布了工作代码

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"formatted-num-pre": function ( a ) {       
    a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" );
    return parseFloat( a );
},

"formatted-num-asc": function ( a, b ) {
    return a - b;
},

"formatted-num-desc": function ( a, b ) {
    return b - a;
}
} );

将方法称为

{ "type": "formatted-num", targets: 0 }]

答案 1 :(得分:0)

我使用自然排序JS并且效果很好 - https://datatables.net/plug-ins/sorting/natural#Example

自然地将数字与字母混合排序。数据通常是数字和字母的复杂混合(文件名是一个常见的例子),并以自然的方式对它们进行排序是一个非常困难的问题。

幸运的是,其他作者已在该领域完成了大量工作 - 以下插件使用Jim Palmer的naturalSort()函数在DataTables中提供自然排序。