Datatable - невозможно прочитать свойство sSortAscending из неопределенного - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь перезагрузить данные из таблицы данных. Для этого я очищаю таблицу, а затем добавляю строки динамически.

JS

 if ($.fn.DataTable.isDataTable('#tbl_mostrar_alarmas')) {
        $('#tbl_mostrar_alarmas').DataTable().clear().rows.add(tablaModalData).columns.adjust().draw(); //I SUPPOSE THAT ERROR HERE 
    }

 $('#tbl_mostrar_alarmas').DataTable({
        'responsive': true,
        'bRetrieve': true,
        "bLengthChange": false,
        'pageLength': 5,
        "data": tablaModalData,
        "order": [
            0, 'desc'
        ],
        "columns": [{
                "data": "fecha",
                "defaultContent": "-",
            },
            {
                "data": "usuario",
                "defaultContent": "-"
            },
            {
                "data": "suceso",
                "defaultContent": "-",
            }
        ],
        "columnDefs": [{
            "targets": 0,
            render: function(data) {
                return moment(data).format('DD/MM/YYYY HH:mm');
            }
        }]

    })
}

HTML

<table id="tbl_mostrar_alarmas" class="table table-bordered table-striped table-hover">
   <thead>
      <tr>
         <th>DATA 1</th>
         <th>DATA 2</th>
         <th>DATA 3</th>
      </tr>
   </thead>
</table>

Возврат

jquery .dataTables.min. js: 68 Uncaught TypeError: Невозможно прочитать свойство 'sSortAscending' из неопределенного

Итак, кто-нибудь знает, что не так?

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

РЕШЕНИЕ

Я нашел решение. Ошибка появляется, когда я пытаюсь загрузить конфигурацию с данными несколько раз. Чтобы избежать этого, мне нужно проверить, была ли загружена конфигурация (или нет), и загрузить ее только один раз.

  if ($.fn.DataTable.isDataTable('#tbl_mostrar_alarmas')) {
        $('#tbl_mostrar_alarmas').DataTable().clear().rows.add(tablaModalData).columns.adjust().draw();
    } else {
        table();
    }

    var table = $('#tbl_mostrar_alarmas').DataTable({
                'responsive': true,
                'bRetrieve': true,
                "bLengthChange": false,
                'pageLength': 5,
                "data": tablaModalData,
                "order": [
                    0, 'desc'
                ],
                "columns": [{
                        "data": "fecha",
                        "defaultContent": "-",
                    },
                    {
                        "data": "usuario",
                        "defaultContent": "-"
                    },
                    {
                        "data": "suceso",
                        "defaultContent": "-",
                    }
                ],
                "columnDefs": [{
                    "targets": 0,
                    render: function(data) {
                        return moment(data).format('DD/MM/YYYY HH:mm');
                    }
                }]
            }

            table();
0 голосов
/ 09 марта 2020

Попробуйте сделать так:

if ($.fn.DataTable.isDataTable("#achats_table")) {
    $('#tbl_mostrar_alarmas').DataTable().clear();
    $('#tbl_mostrar_alarmas').DataTable().destroy();
    $('#tbl_mostrar_alarmas').empty();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...