我正在使用jquery数据表。 它显示用户列表(名字,姓氏等)。当我点击姓氏的升序时,是否可以设置大写字母总是在小写字母之前。(区分大小写)
以下是示例
FirstName LastName
A Xb <--X is Captial-->
B xa <-- x is small-->
c yc
当我点击按升序对姓氏进行排序时,它将显示以下内容
FirstName LastName
B xa <--small-->
A Xb <--X is Captial-->
c yc
是否有任何可用的属性,区分大小写?
答案 0 :(得分:1)
这解决了我的问题:
'columnDefs': [
'targets': 0,
'render': function(data, type, row, meta){
return type === "sort" ? data.toLowerCase() : data;
}]
答案 1 :(得分:0)
这应该可以帮到你
var names = [
{"FirstName":"A", "LastName":"Xb"},
{"FirstName":"B", "LastName":"xa"},
{"FirstName":"C", "LastName":"yc"}
];
names.sort(function(a, b) {
return a.LastName.toLowerCase().localeCompare(
b.LastName.toLowerCase()
);
});
console.log(names);
答案 2 :(得分:0)
你可以尝试这样的事情: -
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));
};
通过准备数据,提高了排序性能 在排序之前排序。例如,这是毫无意义的 多次在同一个字符串上执行.toLowerCase() - 它会 总是会得到相同的结果。因为这样的排序功能现在可以 有一个{type} -pre方法以及{type} -desc和{type} -asc 准备数据的方法。现在使用所有内部排序方法 这种方法。
来自source
答案 3 :(得分:0)
我假设当你说jquery数据表时,你指的是Datatables.net的数据表插件。如果是这样,它看起来像从1.9版本开始,可以使用区分大小写的排序:
答案 4 :(得分:0)
datatables插件中的默认排序类型不区分大小写。但是,如果您使用SQL进行服务器端处理,则区分大小写来自数据库,而不是来自jquery.dataTables.js。要解决此问题,请找到SQL查询订单子句并将其更改为lower()。
如果您使用此处提供的示例:http://www.datatables.net/development/server-side/php_mysql 然后,更换第81行和第8行。 82使用下面的代码,你就完成了。
$sOrder .= 'upper('.$aColumns[ intval( $_GET['iSortCol_'.$i] ) ].")
".mysql_real_escape_string( $_GET['sSortDir_'.$i] ) .", ";
希望有所帮助。