似乎无法识别带有数据表多选的轨道

时间:2017-05-06 20:23:14

标签: jquery ruby-on-rails datatable

这只是我对Rails DataTable Gem和DataTable JS附加功能如何协同工作缺乏了解。

我只是想在我的数据库中进行多选我正在使用gem。 (GemList下面)

jquery-datatables-rails (3.4.0, 3.3.0)
jquery-rails (4.0.5, 4.0.4)
jquery-ui-rails (5.0.5)

数据表工作正常,但现在我第一次尝试使用多列选择,这似乎需要

https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js

只需按照此代码示例

https://datatables.net/extensions/select/examples/api/get.html

我的application.js是

//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
//= require dataTables/jquery.dataTables
//= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
//= require dataTables/extras/dataTables.buttons
//= require buttons.print.min
//= require buttons.html5.min
//= require buttons.flash.min
//= require_tree .

我确实将jquery.dataTables.min.js移动到我的资产javascript目录中,但我不确定还需要什么才能工作?

这是我的数据方法。一切正常,除了它不做选择所以我假设我需要用JS文件做其他事情。

/* testing area
*/
$(document).ready(function() {
    var events = $('#events');
    var table = $('#combined_table').DataTable( {
        dom: 'Bfrtip',
        select: true,
        buttons: [
            {
                text: 'Get selected data',
                action: function () {
                    var count = table.rows( { selected: true } ).count();

                    events.prepend( '<div>'+count+' row(s) selected</div>' );
                }
            }
        ]
    } );
} );

如果一切正常或者我需要以某种方式让铁路知道JS文件存在吗?

1 个答案:

答案 0 :(得分:0)

尝试基于切换CSS类的方法。

$(document).ready(function() {

    var events = $('#events');
    var table = $('#combined_table').DataTable({
        dom: 'Bfrtip',
        buttons: [{
            text: 'Get selected data',
            action: function () {
                var count = table.rows('.selected').data().length;
                events.prepend('<div>' + count + ' row(s) selected</div>');
            }
        }]
   });

    $('#combined_table tbody').on('click', 'tr', function () {
        $(this).toggleClass('selected');
    });

});