Справочная информация:
В моем файле нижнего колонтитула загружены 3 объекта Datatables. Я обертываю Datatables в логику, чтобы увидеть, какой из них был инициализирован, прежде чем приступить к добавлению инструмента кнопок к таблице.
ТАБЛИЦА 1) Содержит основную информацию - не более 10 строк, поэтому она генерируется с помощью PHP, а затем просто преобразуется с помощью JQuery
ТАБЛИЦА 2) Хранит финансовые данные - таблица прокручивается по
ТАБЛИЦА 3) Содержит много информации, поэтому сценарии на стороне сервера были реализованы
Проблема:
ТАБЛИЦА 2 и ТАБЛИЦА 3 не отображают кнопки, пока я не добавлю
dom: 'flBrtip'
Проблема в том, что у меня есть настроенные пользовательские кнопки, некоторые загружают созданные мной функции, а другие расширяют стандартные кнопки.
Когда я добавляю свойство dom, оно загружает ТОЛЬКО кнопки DEFAULT.
Код:
$(document).ready(function() {
var tablessp = $('#members1').DataTable({
url: '<?php echo site_url("membership/index"); ?>',
processing: true,
serverSide: true,
paging: true,
searching: true,
pageLength: 25,
deferRender: true,
dom: 'flBrtip',
ordering: true,
order: [[0, "desc"]],
language: {
"lengthMenu": "Display _MENU_ records per page",
"zeroRecords": "Nothing found - sorry",
"info": "Showing _MAX_ entries",
"infoEmpty": "No records available",
"infoFiltered": "(filtered from _TOTAL_ total records)"
},
responsive: true,
columns: [{data: "id"}, {data: "first_name"}, {data: "middle_name"}, {data: "last_name"} , {data: "phone_number"} , {data: "Age"} , {data: "gender"} , {data: "education_level"} , {data: "marital_status"} , {data: "email"}, {data: "membership_status"}, {data: "action"} ]
});
var table = $('#members,#members2,#members3,#tables,#tithes1,#tithes2,#tithes3,#approve_offering,#approve_expense,#approve_tithe,#approve_pledge,#approve_pledge_rede,#approve_other_income,#approve_cell,#approve_growth,#approve_service').DataTable({
"bFilter": true,
//dom: 'flBrtip',
"pageLength": 25,
"lengthMenu": [[25, 50, 100, -1],["25", "50", "100", "All"]],
"responsive": true,
});
var tablesummary = $('#summary,#summary_a').DataTable({
"scrollX": true,
"sScrollX": "100%",
"sScrollXInner": "100%",
//dom: 'flBrtip',
});
var printCounter = 0;
var newtable = table;
if (!$.fn.DataTable.isDataTable(table)) {
if($.fn.DataTable.isDataTable(tablessp)) {
var newtable = tablessp;
}
if($.fn.DataTable.isDataTable(tablessp)) {
var newtable = tablesummary;
}
} else {
var newtable = table;
}
new $.fn.dataTable.ColReorder(newtable, {});
new $.fn.dataTable.Buttons(newtable, {
buttons: [
// SMS
{
text: 'SMS',
action: function(e, dt, node, config)
{
$("#smsbody").val('');
$('#smsModal').modal('show');
}
},
// COPY
{
extend: 'copy',
exportOptions: {
columns: ':visible'
}
},
// EXCEL
{
extend: 'excel',
exportOptions: {
columns: ':visible'
}
},
// PRINT
{
extend: 'print',
title: '<?php echo company_name($company_id)?>',
messageTop: function () {
printCounter++;
if ( printCounter === 1 ) {
return 'This is the first time you have printed this document.';
}
else {
return 'You have printed this document '+printCounter+' times';
}
},
messageBottom: null
},
//PDF
{
extend: 'pdf',
title: '<?php echo $control_name;?>',
messageBottom: "<?php echo company_name($company_id); ?>",
exportOptions: {
columns: ':visible'
}
},
// COLS
{
extend: 'colvis',
text: 'Columns',
}
]
});
newtable.buttons().container().appendTo($('.col-sm-6:eq(0)', newtable.table().container()));
});
Есть ли способ использовать dom с моими пользовательскими кнопками или получить мои пользовательские кнопки на других столах без использования DOM