如何在jquery datatables rails中使用按钮



我正在尝试向DataTable添加按钮。按照中的说明https://github.com/rweng/jquery-datatables-rails我添加了dataTables.buttons JS。

我的应用程序.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 .

我在gem的资产中没有找到CSShttps://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),但这无济于事。

似乎您已经创建了按钮,但仍需要在页面中显示它们。

你能试试这样的东西吗:

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() ) );

也就是说,在创建之后,可以显式地将按钮附加到主体。让我知道。