如果表为空,则JQuery响应式数据表将不起作用

时间:2018-12-22 21:31:00

标签: datatable datatables responsive

我有一个响应数据表,定义如下:

function loadCancellations(date) {
    $('#cancellations').dataTable({
        bDestroy: true,
        bProcessing: false,
        bServerSide: false,
        bAutoWidth: false,
        ajax: {
            url: 'Modules/Bookings/',
            data: {date: date, type: 'cancelled'}
        },
        sPaginationType: "full_numbers",
        iDisplayLength: 50,
        bLengthChange: false,
        bPaginate: false,
        bFilter: false,
        bSort: true,
        sDom: 't',
        rowId: 6,
        columns: [/*responsive column information*/],
        order: [[0, 'asc'],[1, 'asc']],
        asStripeClasses: ['', 'altrow'],
        language: {
            emptyTable: 'No cancelled bookings for this day'
        },
        fnCreatedRow: function( nRow, aData, iDataIndex ) {
            // last column replaced with buttons
        }
    });
}

当日期选择器的值更改时,将调用此函数,因此它将始终在所选日期刷新包含已取消预订的表。一共有六列(加上按钮),其中两列始终被隐藏,直到使用第一列中的响应界面扩展该行为止,并且我已经对其进行了多次测试,并且效果很好。

除了

如果表为空,则响应界面将不再起作用。相反,它将引发控制台错误,提示TypeError: a[0].aoData[this[0]] is undefined。因此,如果加载满了,那么我加载没有任何一天的一天,然后加载有一天的另一天,响应式插件就会中断。然后我是否销毁并重新初始化数据表并不重要,它只是拒绝工作。我什至可以回到有工作行的日期-它们不再工作。

有人对此有解决方案的想法吗?

1 个答案:

答案 0 :(得分:0)

我使用的插件已过期。这是在更高版本中解决的。我应该在发布之前检查一下,对此我感到羞耻。