datatable.fnDraw() не является функцией

У меня есть таблица данных, которая заполняется и отображается так, как я хочу. Есть столбец даты, к которому я хотел бы применить фильтр диапазона дат. На моей HTML-странице есть два элемента управления, которым я присвоил идентификаторы и добавил jquery для DatePicker. Я посмотрел на пример кода, приведенный здесь https://datatables.net/plug-ins/filtering/row-based/range_dates но когда я запускаю код a и изменяю дату на элементе управления, я вижу ошибку, которая oTable.draw() это не функция.

Я использую datatables 1.10.11, и я настроил свою таблицу, используя следующий код

var statementTable = $('#statementTable').DataTable({....});

Событие on change запускается с этой строкой

$('#startdatepicker').change(function () { statementTable.fnDraw(); });

Когда эта строка выполняется, я вижу ошибку в консоли:

StatementTable.fnDraw() не является функцией.

Кто-нибудь может предложить какие-нибудь указатели, пожалуйста? Спасибо Ричард

2 ответа

Решение

Это было вызвано тем, что объявление StatementTable было в неправильном месте и недоступно для более широкого контекста. Смотрите комментарии ниже оригинального поста.

Метод fnDraw() более старый метод API для DataTables 1.9.

Для более новых DataTables 1.10+ при инициализации таблицы с DataTable(), используй новее draw() Метод API вместо.

$('#startdatepicker').change(function () { statementTable.draw(); });

В качестве альтернативы вы можете инициализировать вашу таблицу с dataTable() затем более старые методы API, такие как fnDraw() все равно будет работать.

Другие вопросы по тегам