Datatables DOM Buttons Issue - PullRequest
       10

Datatables DOM Buttons Issue

0 голосов
/ 02 мая 2019

Справочная информация: В моем файле нижнего колонтитула загружены 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...