Экспорт файла в jquery datatables с использованием выпадающего события change - PullRequest
0 голосов
/ 18 января 2019

Я разработал функциональность для экспорта файлов, используя JQuery Datatable Collections. Когда я нажимаю кнопку, например, PDF (см. Изображение ниже), она экспортирует данные в формате PDF.

enter image description here

Вот мой код для этого.

buttons: [
   {
       extend: 'collection',
       text: 'Save & Column Visibility',
       autoClose: true,
       buttons: [
                   { text: 'Copy', extend: 'copyHtml5'},
                   { text: 'Excel', extend: 'excelHtml5'},
                   { text: 'CSV', extend: 'csvHtml5'},
                   { text: 'PDF', extend: 'pdfHtml5'},
                   { text: 'Print', extend: 'print' }

                ],
            fade: true,
   }
],

Мое требование состоит в том, чтобы реализовать эту функцию в событии изменения раскрывающегося списка вместо события нажатия кнопки.

Вот мой код для раскрывающегося списка, который я сделал до сих пор.

$('<div class="pull-right">' +
        '<select id="dropdown" name="dropdown" class="form-control">' +
        '<option value="copy">Copy</option>' +
        '<option value="excel">Excel</option>' +
        '<option value="csv">CSV</option>' +
        '<option value="pdf">PDF</option>' +
        '<option value="print">print</option>' +
        '</select>' +
        '</div>').appendTo("#tbMenu_wrapper .dataTables_filter");
    $(".dataTables_filter label").addClass("pull-right");
});

Вот функция события Onchange, которую я создал для целей тестирования.

$(function () {

        $("#dropdown").change(function () {

            if ($(this).val() == "copy") {
                alert("From Copy");


            }
            else if ($(this).val() == "excel") {
                alert("From excel");

            }
            else if ($(this).val() == "csv") {
                alert("From csv");
            }
            else if ($(this).val() == "pdf") {
                alert("From pdf");
            }
            else if ($(this).val() == "print") {
                alert("From print");
            } else {
                alert("From else part");
            }
        });

Работает нормально, когда я нажимаю на раскрывающееся значение и выдает предупреждение, как указано в функции. Но что мне теперь делать в вышеупомянутом коде, который предоставит мне возможность экспорта файлов в выпадающем списке изменений?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Я нашел решение для моего вопроса, которым я делюсь для будущего использования. Просто замените эту строку alert("From Copy"); на эту

var table = $('#tbMenu').DataTable();
table.button('.buttons-copy').trigger();        

Спасибо.

0 голосов
/ 18 января 2019

Должно работать OOTB, вам нужно загрузить зависимости.

Кнопки предоставляют типы кнопок, которые автоматически определяют, HTML5 или Flash должны использоваться на основе функциональности браузера и Настоятельно рекомендуется использовать эти типы кнопок над определенные типы кнопок HTML5 или Flash. Это: копировать, CSV, Excel, PDF.

В этом примере показано, как используются эти четыре типа кнопок плюс печать со всеми необходимыми загружаемыми зависимостями.

$(document).ready(function() {
    $('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    } );
} );

Пожалуйста, обратитесь к:

https://datatables.net/extensions/buttons/examples/initialisation/export.html https://datatables.net/extensions/buttons/

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