Ошибка типа: данные не определены при использовании jquery.datatables.min.js - PullRequest
0 голосов
/ 22 октября 2018

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

В результате отсутствуют нулевые значения.

Но нижеприведенноеупоминается ошибка.

Предупреждение DataTables: таблица id = summaryResults1 - Запрошенный неизвестный параметр 'workCategory' для строки 0, столбца 0. Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/4"

summaryTable = $('#summaryResults1').DataTable( {

                              data: tableResultsAjax,
                              serverSide: true,
                              ajax: {
                                    dataSrc: function (json) {
                                          return json.data;
                                      },
                                    "data": function(){
                                        var info = $('#summaryResults1').DataTable().page.info();

                                         $('#summaryResults1').DataTable().ajax.url(
                                                url_ajax+"&bucketCounter="+(info.page+1)
                                            );

                                    }

                              },

                              paging:true,
                              pageLength:500,
                              scrollX:true,
                              scrollCollapse: true,
                              ordering: false,
                              "scrollY": 1000,
                              "lengthChange": false,
                              "searching": false,
                              "deferRender":true,

                   "columns": [
                              { "data": "workCategory" },
                              { "data": "queue" },
                              ....

                              ],

                        columnDefs : [ {
                                "targets" : [  10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ],
                                "render" : function(data, type, row,meta) {
                                    if (type === "display" ) {
                                        param = 20-meta.col;
                                        return drilldownViewCheck?data:"<a id = 'aa' href=\"javascript:passAJAXValues('" + row.queue.code + "','" + row.task.code + "','P"+param+"','"+ row.office.code + "')\"style=\"color:#FFF;\">" + data + "</a>";
                                    }
                                }
                            },

                            ....
                          ],

                        fixedColumns:{
                              leftColumns:6
                          }





                      } );
 });

Ответ со стороны сервера для одной строки:

{"recordsFiltered": 750, "data": "[{...., \" workCategory \ ": \" Work category \ ",...., \ "queue \": \ "Имя очереди \"}] "," draw ": 2," recordsTotal ": 750}

1 Ответ

0 голосов
/ 22 октября 2018

Техническое примечание # 4 точно определяет проблему:

Это будет означать, что столбец, использующий columns.data, не смог получить действительные данные для отображения - например,:

{ data: 'Name' }

выдаст эту ошибку, если объект источника данных для строки не будет иметь параметра Name или данные будут null или undefined.

Вашответ от серверного скрипта, скорее всего, не имеет свойства workCategory.

В вашем ответе ваше свойство data дважды кодируется в формате JSON на сервере, поэтому DataTables не находит никаких данныхпотому что data является строкой и должен быть массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...