jquery数据表列排序不正确

标签 jquery sorting datatables

我想我知道这个问题,但我不知道如何正确处理它,所以我希望这里有人遇到类似的问题并设法解决它。我所拥有的是一张包含几列的表格,除了一列之外,所有这些列都可以进行排序。下面是该列及其工作排序的屏幕截图。

enter image description here

如您所见,它不根据字母数字逻辑排序。我的假设是,某些名称中包含字符,例如逗号、圆括号、方括号等。也就是说,我将如何解决这个问题,以便我可以使用数据表插件对这个字母数字进行排序?想法是什么?

****编辑****

这是我正在使用的代码,适用于除这一列之外的所有内容。

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"}
        ]
    });

最佳答案

既然您显示了链接,我猜您正在使用自定义渲染函数?

如果是这种情况,请在列定义中设置以下内容:

"bUseRendered": false

这将使表对数据进行排序,而不是对渲染的输出进行排序。

关于jquery数据表列排序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10218499/

相关文章:

jquery - 如何更新数据表列中的数据

jquery 数据表行分组

javascript - 如何将我的网站页眉和页脚存储在一个位置?

javascript - 正则表达式使用javascript用英语和阿拉伯语字符串中的空格替换特殊字符

javascript - 如何按关联数组值排序(复杂数组结构)?

javascript - jQuery dataTables 插件 - 如何忽略列排序中的单词

javascript - angular.element 和 document.getElementById 有什么区别

jQuery - 为每个关联的数据属性添加事件状态

java - 如何使用 partitioningBy,然后使用 Java Streams 分别对结果列表进行排序

asp.net-mvc - 通过 mvc 使用 jQuery 数据表服务器端处理。序列化条件表单并将此参数添加到 $ajax.post 方法