DataTables: как настроить конфигурацию после инициализации? - PullRequest
0 голосов
/ 05 мая 2020

Я использую плагин 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'}
    ]
})

Есть идеи? Спасибо!

1 Ответ

1 голос
/ 06 мая 2020

Не совсем понятно, что именно вы хотите изменить. Многие параметры нельзя изменить, и для изменения, например, columnDefs требуется повторная инициализация (для чего требуется destroy: true). Если параметры, которые вы хотите изменить: generi c / stati c, вы можете расширить значения по умолчанию DataTables :

$.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 - конфигурация просто выбирается и может быть изменена до того, как таблица будет создан.

...