Как использовать кнопки с jquery-datatables-rails?

Я пытаюсь добавить кнопки в свой DataTable. Как указано в https://github.com/rweng/jquery-datatables-rails я добавил JS dataTables.buttons.

Мое application.js:

//= require jquery
//= require jquery.turbolinks
//= require jquery-ui
//= require jquery_ujs
//= require dataTables/jquery.dataTables
//= require dataTables/extras/dataTables.buttons
//= require bootstrap
//= require turbolinks
//= require_tree .

Я не нашел CSS в активах самоцвета https://github.com/rweng/jquery-datatables-rails/tree/master/app/assets/stylesheets/dataTables/extras.

Следовательно, мой application.css (не содержит ничего, связанного с кнопками):

*= require jquery-ui
*= require dataTables/src/demo_table_jui
*= require_tree .
*= require_self
*/

В моем сценарии кофе у меня есть (имитируя https://datatables.net/extensions/buttons/examples/initialisation/export.html):

jQuery ->
    $('#rating').dataTable(
            bJQueryUI:       true,
            sPaginationType: "full_numbers",
            iDisplayLength:  100,
            scrollY:         "1000px",
            scrollCollapse:  true,
            dom: 'Bfrtip',
            buttons: [
                'copy', 'excel', 'pdf'
            ]
            )

Я предполагаю, что мне не хватает чего-то глупого, такого как CSS или что-то, противоречащее параметрам. Когда я попытался добавить javascript_tag ( https://cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js) / stylesheet_tag ( https://cdn.datatables.net/buttons/1.1.2/css/buttons.dataTables.min.css), но это не помогло.

1 ответ

Кажется, вы создали кнопки, но вам все еще нужно показать их на странице.

Можете ли вы попробовать что-то вроде этого:

jQuery ->
    table = $("#rating").dataTable(
        bJQueryUI: true,
        sPaginationType: "full_numbers",
        iDisplayLength: 100,
        scrollY: "1000px",
        scrollCollapse: true,
        dom: "Bfrtip",
        buttons: [
            "copy",
            "excel",
            "pdf"
        ]
    )
    table.buttons()
        .container()
        .appendTo( $(".your-div-for-button", table.table().container() ) );

То есть после создания вы добавляете кнопки к телу явно. Дай мне знать.

Другие вопросы по тегам