【问题标题】:DataTables: how to set configuration after init?DataTables:初始化后如何设置配置?
【发布时间】:2020-05-05 16:36:23
【问题描述】:

我正在为表格使用 WordPress 插件 TablePress。它创建DataTables 表,我想在初始化后修改

问题:表格已经被插件初始化,这意味着我不能再使用构造函数了。

// Already set by the plugin:
$('#tablepress-1').dataTable({
    columnDefs: [
        { targets: -1, className: 'dt-body-right'}
    ]
});

我正在寻找类似的东西(伪代码):

var table = $('#tablepress-1').dataTable();
table.updateConfig({
    columnDefs: [
        { targets: -1, className: 'dt-body-right'}
    ]
})

有什么想法吗?谢谢!

【问题讨论】:

    标签: javascript wordpress datatables tablepress


    【解决方案1】:

    目前还不清楚您要修改什么。许多选项无法修改,例如要修改columnDefs 需要重新初始化(需要destroy: true)。如果您要修改的选项是通用/静态的,您可以扩展 DataTables defaults:

    $.extend( true, $.fn.dataTable.defaults, {
      columnDefs: [
        { targets: '_all', className: 'dt-body-right' } // _all not -1
      ]
    })
    

    className 和任何其他default 仍然可以被选项覆盖 传递给构造函数。如果这是问题,您可以“猴子补丁”DataTables:

    const orgDT = $.fn.DataTable
    $.fn.DataTable = function(config) {
       config.columns[0].className += ' table-success'
       return orgDT.call(this, config)
    }
    

    这提供了 100% 的控制,但是这个“tablepress”初始化 DataTables - 配置被简单地拾取并且可以在表被实例化之前进行更改。

    【讨论】:

      猜你喜欢
      • 2018-09-17
      • 2011-05-04
      • 2016-11-29
      • 2016-08-21
      • 2013-03-05
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多