JQuery Responsive Datatable не работает, если таблица пуста - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть отзывчивая таблица данных, определенная следующим образом:

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 голосов
/ 24 декабря 2018

Плагин, который я использовал, устарел.Это было решено в более поздней версии.Я должен был проверить это перед публикацией, и мне стыдно за это.

...