我正在使用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
],
});
代码运行时,如下图所示出现以下错误
我在数据表中有5列,并希望对第一列进行排序。 任何人都可以帮忙..
答案 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,以确保大写字母和小写字符的一致排序......?希望有所帮助。