数据表不区分大小写的排序

时间:2017-01-17 05:28:04

标签: sorting datatables

我正在使用datatable并想要排序/排序一些列(在我的情况下,它是第一列),如下所示:

A
a
B
b
C
c 

而不是

A
B
C
a
b
c

我有以下代码:

/* Define two custom functions (asc and desc) for string sorting */
jQuery.fn.dataTableExt.oSort['string-case-asc']  = function(x,y) {
return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};

jQuery.fn.dataTableExt.oSort['string-case-desc'] = function(x,y) {
return ((x < y) ?  1 : ((x > y) ? -1 : 0));
};

在数据表脚本中我有:

$(function() {
    $('#tpl-table').DataTable({

"aoColumns": [
        { "sType": 'string-case' },
        null,
        null,
        null,
        null
    ],
});

代码运行时,如下图所示出现以下错误

enter image description here

我在数据表中有5列,并希望对第一列进行排序。 任何人都可以帮忙..

1 个答案:

答案 0 :(得分:0)

这似乎有效:

var data = [{
    "letter": "A"
}, {
    "letter": "a"
}, {
    "letter": "B"
}, {
    "letter": "b"
}, {
    "letter": "C"
}, {
    "letter": "c"
}];

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "lower-letter-pre": function(a) {
        return a.toLowerCase().charCodeAt(0);
    },
    "lower-date-asc": function(a, b) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "lower-date-desc": function(a, b) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
});


$(function() {
    var example = $("#example").DataTable({
        data: data,
        columns: [
            {
                "title": "Letter",
                "type": "lower-letter",
                "data": "letter"
            }
        ]
    });
});

使用JSFiddle here。我想你可以参考原始字符,如果它的小写加上0.5,以确保大写字母和小写字符的一致排序......?希望有所帮助。