数据表不会在滚动时打印我的所有行

时间:2017-03-15 12:03:17

标签: javascript jquery twitter-bootstrap-3 datatables

我正在尝试从每个滚动的后端响应中获取行。我明白了 一个AJAX响应,但我无法获得完整的行,它会占用数据 最有可能是最后一个。

我尝试了其他替代方案,但它根本不起作用,我尝试重绘并重新加载AJAX。

这是我的js代码:

  var table= $('#subscriber_list').DataTable({
        responsive: true,
        "processing":true,
        serverSide: true,
        "scrollCollapse":true,
        "sDom":"BifrtS",
        scrollY:'35vh',
        scrollCollapse: true,
        paging:false,
        "oScroller": {
            "displayBuffer": 2,"loadingIndicator": true
        },
        "ajax": {"url": $('#data_table_column_list').attr("url"),"type": 'POST',"data":{'type':subscriber_type,'end_date_from':end_date_from,'end_date_to':end_date_to}},
        "columns": JSON.parse($('#data_table_column_list').val().replace(/\'/g, '"')),
        "columnDefs": [
            { "orderable": false, "targets": 2 }
        ],
        buttons: [
            {
                extend: 'excelHtml5',
                text: 'Export selected',
                exportOptions: {
                    columns: ':visible:not(.not-exported)',
                    modifier: {
                        selected: true
                    }
                },
                title: 'Data export'
            },
            {
                extend: 'excelHtml5',
                text: 'Export All',
                exportOptions: {
                    columns: ':visible:not(.not-exported)'
                },
                title: 'Data export'
            }
        ]
    });

2 个答案:

答案 0 :(得分:0)

根据您希望表的工作方式,您需要以下一项或两项。

现在,它已被切断,因为Datatables中的默认值为10行。您将分页设置为false,因此现在显示10日之后的任何结果。

切换此项:paging:false,

至:paging:true,

这将为您提供多页结果,每页10个。

如果您希望每页超过10行,也可以添加"pageLength": 50或其他值。

答案 1 :(得分:0)

这里我使用来自多个单选按钮开关的相同数据表,在切换时我从数据表中获取警告无法重新初始化,因为我知道何时使用table.destroy();它会破坏我在切换选项时创建的所有对象,但是有替代使用它,现在该做什么???? ,用完了主意 我实际上是指这个 https://datatables.net/manual/tech-notes/3

 $('.subscriber_type').on('change',function (e){ 
     var table = $('#subscriber_list').DataTable();
    subscriber_data_table($(this).val(),$('#datepicker_from').val(),$('#datepicker_to').val());
});

 subscriber_data_table("all",null,null);

   function  subscriber_data_table(subscriber_type,end_date_from,end_date_to) {
    $('#subscriber_list').DataTable({
        responsive: true,
        "processing": true,
        serverSide: true,
        paging:true,
        "pageLength":50,
        "drawCallback": function( settings ) {
            console.log( 'hit began' );
        },
        "sScrollY": "379",
        "sDom":"BifrtS",
        "oScroller": {
            "displayBuffer": 2,"loadingIndicator": true
        },
        "ajax": {"url": $('#data_table_column_list').attr("url"),"type": 'POST',"data":{'type':subscriber_type,'end_date_from':end_date_from,'end_date_to':end_date_to}},
        "columns": JSON.parse($('#data_table_column_list').val().replace(/\'/g, '"')),
        "columnDefs": [
            { "orderable": false, "targets": 2 }
        ],
        buttons: [
            {
                extend: 'excelHtml5',
                text: 'Export selected',
                exportOptions: {
                    columns: ':visible:not(.not-exported)',
                    modifier: {
                        selected: true
                    }
                },
                title: 'Data export'
            },
            {
                extend: 'excelHtml5',
                text: 'Export All',
                exportOptions: {
                    columns: ':visible:not(.not-exported)'
                },
                title: 'Data export'
            }
        ]
    });
}