手动覆盖 DataTable 的 Language.infoFiltered

Manually override DataTable's Language.infoFiltered

我正在尝试覆盖 DataTables 中未过滤的总数。目前,我们的应用程序通过 AJAX 接收信息,这些信息必须经过格式化和处理,然后手动添加到 <table>。对于动态信息,这似乎通常在 JSON AJAX 响应中收到,但再次强调,我们必须事先进行处理。

目前我有一个看起来像这样的部分修复:

if(typeof $.overrideFilteredCount == 'undefined') {
    $.overrideFilteredCount = '_MAX_';
}

$.dataTable = $sortTable.DataTable({
    'language': {
        "infoFiltered": "(" + $.overrideFilteredCount + " total entries)"
    },
});

然而,这会始终向用户显示 "filtered" 文本,因为我们总是使用过滤器,e.x.:

Showing 1 to 10 of 54 entries (54 total entries)

有没有办法动态设置总计数post-初始化?

您可以使用infoCallback选项来定义回调函数来动态更新信息部分。

例如:

$('#example').dataTable({
  "infoCallback": function( settings, start, end, max, total, pre ) {
     return "Showing " + start + " to " + end + " of " + total + " entries"
            + ((total !== max) ? " (filtered from " + max + " total entries)" : "");
  }
});