Я пытаюсь следовать примеру добавления данных в datatables.net datatable с использованием ответа JSON на основе этого примера https://www.datatables.net/examples/ajax/objects.html.
Я использую вызов AJAX для получения ответа JSON из базы данных.
Я получаю данные, а затем используя NewtonSoft JSON.Net для преобразования данных в массив JSON в соответствии с приведенным ниже кодом
Это успешно вызывается из вызова AJAX в отдельном файле javascript в соответствии с следующим фрагментом кода
Который затем передает возвращаемые значения функции, которая должна форматировать ввод данных в данные, соответствующие соответственно следующему набору кода
Проблема, которую я получаю, похожа на этот вопрос, здесь jquery datatables Ajax-Error/http://datatables.net/tn/7, однако я пробовал это решение для пользователей и имел ту же проблему.
Я выполнил все рекомендуемые шаги, как описано здесь https://www.datatables.net/manual/tech-notes/7, но не вижу ничего плохого в ответах, которые возвращаются, которые относятся к этому.
Я был бы признателен, если бы кто-нибудь мог мне помочь в этом, так как я не вижу пути вокруг проблемы в данный момент
Если вы создаете приложение, которое обрабатывает большие массивы данных, то понадобится реализовать таблицы, обновляемые в режиме реального времени. Возьмем, к примеру, систему управления контентом.
В ней часто добавляется и удаляется большое количество данных, и хотелось бы, чтобы эти изменения были доступны для пользователей немедленно.
В этой статье мы создадим таблицы, обновляемые онлайн. Для этого будем использовать несколько инструментов для разработчиков, а именно:
- jQuery : небольшая библиотека JavaScript , включающая в себя обширный функционал, который позволяет упростить управление DOM , обработку событий, анимацию и реализацию В том числе и с помощью jquery datatables .
- Pusher : Бесплатный, простой в использовании realtime pub / sub сервис. Он позволяет реализовать обработку данных в режиме реального времени с помощью основных событий.
- DataTables : jQuery -плагин для дополнения элементов управления в любую HTML–таблицу .
- Bootstrap : интерфейс для разработки адаптивных проектов.
На приведенном ниже изображении продемонстрировано, что мы собираемся создать:

- Настройка таблиц данных с помощью jquery datatables
- Примеры использования jquery datatables
- Создание таблицы
- Добавление новых записей в таблицу
- Выбор и удаление существующих записей из таблицы
- Обновление в режиме реального времени с помощью Pusher
- Установка Pusher на сервере
- Заключение
- Дополнение: Настройка Pusher
Настройка таблиц данных с помощью jquery datatables
DataTables запускается в приложении просто. Все, что нам нужно сделать, это включить JavaScript и CSS-файлы DataTables на HTML-странице .
Существует множество других плагинов для расширения набора функций DataTables , но в основном мы будем использовать эти два файла.
DataTables – это jQuery — плагин, для его работы необходима библиотека jQuery . Чтобы подключить DataTables на странице, мы используем на HTML-странице следующие ссылки:
А приведенные ниже ссылки должны размещаться в конце элемента
непосредственно перед его закрывающимся тегом:
Примеры использования jquery datatables
Создание таблицы
Чтобы создать шаблон таблицы, вставляем элемент таблицы на страницу и с помощью jQuery добавляем к нему метод DataTable . Это позволяет инициализировать все встроенные функции DataTables . Метод DataTable принимает объект в качестве аргумента. Объект содержит свойство data, которое принимает [dataSet](https://github.com/christiannwamba/pusher-realtime-jquery-datatable/blob/master/data.js) , массив данных, которые собираемся отображать в таблице.
Мы также включаем свойство columns , и устанавливаем его значение в массив объектов с каждым значением объекта, служащим заголовком столбца таблицы.
Набор данных хранится в другом JavaScript-файле и должен быть импортирован перед указанным выше JS-файлом :
Добавление новых записей в таблицу
Чтобы добавить в таблицу новые записи, сначала создаем на странице форму с допустимыми параметрами. Затем приступаем к созданию в JavaScript-файле метода с именем buildForm() . Используя jQuery , обеспечиваем, чтобы buildForm() возвращал значение каждого параметра формы, исходный код, которой приведен ниже.
Затем продолжаем создавать метод buildForm() :
Метод addRow() служит для добавления любых данных, возвращаемых buildForm() :
Методы row.add() и .draw() являются встроенными API-интерфейсами DataTables . Также в addRow() реализованы другие методы DataTables : .show() , . draw(false) и .node() :
- add() добавляет новую строку в таблицу;
- .draw() заново воссоздает и обновляет таблицу в текущем контексте;
- .show() отображает поле в таблице. Это полезно, когда нужно добавить дополнительные поля, но отображать их только при определенных условиях;
- .draw(false) добавляет новую строку без сброса или искажения текущей страницы;
- .node() служит по событий, который возвращает элемент DOM для запрошенного поля. Это позволяет DOM манипулировать этим полем.
Затем метод addRow() привязываем к кнопке с помощью jQuery-метода .click() . Когда кнопка нажата, addRow() автоматически выполняет свои функции.

Выбор и удаление существующих записей из таблицы
Создадим метод selectRow() , который предназначен для выбора строки в таблице. Метод добавляет к выбранной строке класс selected и удаляет все строки, в которые ранее был добавлен класс selected :
Также создаем метод removeRow() , который предназначен для удаления строк из таблицы. Удаляемая строка — это строка с классом selected :
Затем переходим к привязке selectRow() и removeRow() к соответствующим триггерам событий. Для этого используем jQuery-метод .click() :
Обновление в режиме реального времени с помощью Pusher
Чтобы включить в таблице обновление в режиме реального времени, интегрируем Pusher . Pusher . Это простой API для быстрой реализации двухстороннего обновления в режиме реального времени в веб и мобильных приложениях. Для этого Pusher должен быть установлен как на стороне клиента, так и на стороне сервера.
Клиентская сторона содержит тег
В файле script.js мы создаем метод sendToServer() , в котором выполняем POST-запрос с помощью Axios . В POST-запросе передаем два параметра.
Первый — это URI конечной точки службы, а второй — данные таблицы, которые устанавливаем как значение для вновь созданной константы formData :
Затем мы устанавливаем связь с Pusher , создавая новый экземпляр Pusher . Вставляем бесплатный ключ API , который можно получить от Pusher при регистрации. Чтобы обеспечить шифрование трафика подключения, устанавливаем в приложении для параметра encrypted логическое значение true :
Ключ является частью учетных данных, которые генерируются при создании нового приложения в панели инструментов Pusher . Вы можете создать учетную запись, зарегистрировавшись в сервисе .
Установка Pusher на сервере
Запустите приведенную ниже команду для установки зависимостей сервера:
В результате будет создан файл server.js . Затем инициализируем Express , после чего настраиваем его для поддержки совместного использования ресурсов, закодированного тела и JSON .
После этого создаем новый экземпляр Pusher , который содержит объект с идентификатором приложения, ключом, секретом, кластером и настройками шифрования.
Затем создаем маршрут POST , и в нем используем Pusher для запуска события с именем new-record через канал record :
Чтобы выполнять обновление в таблице в режиме реального времени, в файле script.js ( на стороне клиента ) используем метод Pusher subscribe() для подписки на записи records . Затем определяем функцию обратного вызова, которая привязывает событие new-record , а вместе с ним и данные:

Заключение
Теперь вы сможете с легкостью создавать кросс-платформенные приложения, поддерживающие функцию обновления в режиме реального времени. Также доступны и другие функции DataTables и Pusher , но их использование зависит от потребностей вашего приложения.
Вы можете ознакомиться с документацией DataTables и с документацией Pusher , изучить проект на GitHub .
Дополнение: Настройка Pusher
Зарегистрируйте бесплатную учетную запись Pusher :
Создайте новое приложение, выбрав в боковой панели пункт « Apps» и нажав кнопку « Create New», расположенную в нижней части боковой панели:
Настройте приложение, предоставив основную информацию, запрошенную в представленной форме. Также можно выбрать среду, с которой вы собираетесь интегрировать Pusher :
Вы можете получить свои ключи на вкладке App Keys :
Данная публикация представляет собой перевод статьи « How to build a realtime table with DataTables » , подготовленной дружной командой проекта Интернет-технологии.ру
Пожалуйста, посмотрите мою проблему ниже:
Я использую в своей MVC-Web-Application jquery datatables. Когда я показываю только 8 столбцов, все работает нормально. Но с еще одним столбцом я получаю сообщение ajax-error, см. Заголовок.
Контроллер wokr отлично, потому что 8 столбцов работают нормально. Здесь мой код представления:
Вы можете, что последние столбцы не активны, а затем:
Когда я делит//из последнего столбца, тогда:
Как я могу решить эту проблему? Пожалуйста, помогите мне. Я ищу решение, с понедельника, весь день!