【问题标题】:Override datatables options覆盖数据表选项
【发布时间】:2017-08-23 09:33:32
【问题描述】:

我在我的网站上到处使用数据表,每个表都有自己的属性

示例: index.php

  $(document).ready(function() {
    $('#fileTable').dataTable({
      "aaSorting": [],
      "columnDefs": [{"orderable": false, "targets": 5}],
    });
  });

档案.php

$('#fileTable').dataTable({
    "columnDefs": [
        {"orderable": false, "targets": 3}
    ]
});

我想更改所有表格的文本而不更改jquery.dataTables.min.js

所以我把它放在页脚:

$(document).ready(function() {
    $('#fileTable').dataTable({
      language: {
        search: "",
        searchPlaceholder: "Search...",
        sLengthMenu:"_MENU_",
        sInfo:"_TOTAL_ elements"
         }
    });
  });

但我有这个错误: DataTables 警告:table id=fileTable - 无法重新初始化 DataTable。有关此错误的更多信息,请参阅http://datatables.net/tn/3

我怎样才能正确地做到这一点(不破坏)

谢谢

【问题讨论】:

  • 没有推荐的初始化后更新设置的方法 (source)。

标签: jquery datatables


【解决方案1】:

您可以将语言设置放在一个单独的对象中,然后$.extend() 为每个实例添加自己的自定义设置,如下所示:

var langSettings = {
  language: {
    search: "",
    searchPlaceholder: "Search...",
    sLengthMenu: "_MENU_",
    sInfo: "_TOTAL_ elements"
  }
}

// for index.php:
$('#fileTable').dataTable($.extend(langSettings, {
  "aaSorting": [],
  "columnDefs": [{
    "orderable": false, 
    "targets": 5
  }]
}));

// for archives.php:
$('#fileTable').dataTable($.extend(langSettings, {
  "columnDefs": [{
    "orderable": false, 
    "targets": 3
  }]
}));

【讨论】:

  • 谢谢,但它不起作用,我在标题上添加了“var langSettings”并添加了“$('#fileTable').dataTable($.extend(langSettings..”但没有改变
  • 道歉 - 我错过了外部 language 对象。试试我更新的答案
【解决方案2】:

由于错误状态,您不能reinitialise DataTables。但是只要您在每个页面中初始化表格,只需添加您喜欢的文本即可。

【讨论】:

    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2015-04-20
    相关资源
    最近更新 更多