我有一个非常简单的Datatable。除一列外,所有列都排序正确。这些列只包含文本(字符串)。以下是我对列排序时得到的顺序:
À 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
),您可以使用datattables国际化插件。
使用步骤:
-
将库添加到页面的
<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');
这里描述了各种额外的配置选项。