Предупреждение DataTables: идентификатор таблицы = пациенты - Неверный ответ JSON. Для получения дополнительных сведений об этой ошибке см. http://datatables.net/tn/1 - PullRequest
1 голос
/ 20 июня 2020

У меня проблема с этой таблицей данных Jquery Я получаю эту ошибку: предупреждение DataTables: идентификатор таблицы = пациенты - Недействительный ответ JSON. Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/1

Я выполняю эту функцию на контроллере:

  [HttpGet]
            public JsonResult LoadPatients()
            {
                // Browser list
                var totalPatientsList = _unitOfWork.Patients.GetPatients();
    
                var filteredResult = from b in totalPatientsList
                                     select new[] {b.Jeton, b.Nom, b.TelePhone, b.Adresse, b.Villes.Nom,b.Id.ToString()};
    
                return Json(new
                {
                    data =filteredResult
                },
                  JsonRequestBehavior.AllowGet);
            }
and i call on index view :

$(document).ready(function () {
            var table = $("#patients").DataTable({
                ajax: {
                    url:"/patients/LoadPatients",
                    dataSrc: ""
                },
                columns: [
                    {
                        data: "jeton"
                        
                    },
                    {
                        data: "nom"
                    },
                    {
                        data: "telephone",
                        render: function (data) {
                            return data.toString().replace(
                              /(\d\d\d)(\d\d\d)(\d\d\d\d)/g, '$1-$2-$3');
                        }
                    },
                    {
                        data: "adresse"
                    },
                    {
                        data: "villes.nom"
                    },
                    {
                        data: "id",
                        render: function (data, type, patient) {
                            return "<a href='/patients/details/ " + patient.id + "' class='btn btn-default btn-xs'>" + "<i class='fa fa-folder'></i>View</a>" +
                                //"<button class= 'btn-link js-detail' data-detail-id=" + data + "><i class='fa fa-pencil-square'></i></button>" +
                                "<button class= 'btn btn-danger btn-xs js-delete' data-patient-id=" + data + "><i class='fa fa-trash-o'></i>Delete</button>";
                        }
                    }

                ]
            });

Я проверяю результат на chrome я получаю это :

{
    "data": [
        ["0002020", "patienta", "0670707070", "Zone franche", "Tan", "1"],
        ["0002029", "tst", "0524242424", "Ma", "M", "10"]
    ]
}

Как я могу решить эту проблему? Заранее благодарим

1 Ответ

1 голос
/ 21 июня 2020

Ваш JSON не имеет меток - каждая строка представляет собой просто массив данных, например:

["0002020", "patienta", "0670707070", "Zone franche", "Tan", "1"]

Это означает, что вы не можете использовать такие метки данных:

data: "jeton"

, потому что метка jeton не существует в ваших JSON данных.

Таким образом, вместо этого вы можете изменить все эти data:... значения на title"... - для пример:

title: "jeton"

Это означает, что первое значение в массиве (то есть «0002020») появится в первом столбце вашей таблицы, а заголовок столбца будет «jeton».

И тогда второй столбец в вашей таблице будет содержать «Patienta» и будет использовать заголовок столбца «nom» - и т. Д.

Вот мой пример с вашими данными:

введите описание изображения здесь

Думаю, это все, что вам нужно сделать, чтобы исправить проблему.

Дополнительные примечания:

Не забудьте обновить URL-адрес ajax - выглядит так, как будто вы уже это сделали.

Возможно, вам также потребуется удалить следующую строку dataSrc: "" из раздела ajax, так что это:

ajax: {
  url:"/patients/LoadPatients"
},
  • но я не уверен. Попробуйте оба варианта.
...