sorting - 在我的数据表中,我有一个仅包含简单字符串的简单列,但它没有正确排序
问题描述
我有一个非常简单的数据表。除一列外,每一列都正确排序。此列仅包含文本(字符串)。这是我对列进行排序时得到的顺序:
À publier,
Retiré temporairement,
Retiré - Rejet
Nouveau.
这是 Datatable 的代码,如您所见,它非常简单。var peutModifier = $('#hdnPeutModifier').val();
if (peutModifier !== 'undefined' && peutModifier === 'True') {
colonneAvecTriDesactive = [0, -1]; // Tri désactivé sur première et dernière colonne.
} else {
colonneAvecTriDesactive = [-1]; // Tri désactivé sur dernière colonne.
}
$('#DataTablePublication').DataTable({
search: false,
bFilter: false,
pageLength: 100,
lengthMenu: [[10, 20, 50, 100], [10, 20, 50, 100]],
columnDefs: [
{ orderable: false, targets: colonneAvecTriDesactive }
],
order: [],
language: {
paginate: {
first: "Premier",
last: "Dernier",
next: "Suivant",
previous: "Précédent"
}
}
});
我检查了该列仅包含字符串,此外,我没有在列排序上设置任何触发器,并且我的浏览器中没有任何错误。
有人对这个问题有想法吗?
解决方案
看起来您已经按字母倒序对列进行了排序 - 这就是为什么À
首先出现的原因(因为À
随后z,
使用默认代码点排序)。
要使用对语言敏感的排序,即您希望在字典中找到的排序顺序(其中église
是eagle
,不是zebra
),您可以使用 DataTables国际化插件。
使用步骤:
将库添加到
<head>
页面的部分。您可以为此使用 CDN:<script src="https://cdn.datatables.net/plug-ins/1.11.0/sorting/intl.js"></script>
在创建 DataTable 之前,在脚本中初始化插件:
$.fn.dataTable.ext.order.intl();
如果您愿意,还可以提供明确的语言环境:
$.fn.dataTable.ext.order.intl('fr');
此处描述了各种其他配置选项。
推荐阅读
- http - 用户名密码在 URL 中的作用是什么?
- javascript - 谷歌地图不显示,HTML
- kubernetes - 使用 Bastion SSH 到 Kubernetes pod
- karate - 如何在空手道中参数化来自詹金斯的黄瓜选项标签
- c++ - Opencv 从缓冲区写入和读取
- javascript - 用值初始化 Guard
- javascript - Chrome [VM] 文件在每次加载时创建事件处理程序
- python - 计算熊猫数据框中的摘要行
- php - mysqli_fetch_assoc() 在响应版本中不返回任何内容
- php - preg_replace 用于字符串中的“phpbb”报价和颜色标签