在我的数据表中,我有一个仅包含简单字符串的简单列,但排序不正确

In my Datatable, I have a simple column containing only simple strings but it's not sorting correctly

我有一个非常简单的数据表。除一列外,每一列都正确排序。此列仅包含文本(字符串)。 这是我对列进行排序时得到的顺序:

À 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),您可以使用数据表 internationalization plug-in.

使用步骤:

  1. 将库添加到页面的 <head> 部分。您可以为此使用 CDN:

    <script src="https://cdn.datatables.net/plug-ins/1.11.0/sorting/intl.js"></script>

  2. 在创建 DataTable 之前在脚本中初始化插件:

    $.fn.dataTable.ext.order.intl();

如果需要,您也可以提供明确的语言环境:

$.fn.dataTable.ext.order.intl('fr');

描述了各种额外的配置选项 here