TypeError:使用jquery.datatables.min.js时数据未定义

时间:2018-10-22 10:54:25

标签: javascript datatables

“我能够看到服务器端ajax结果,但是我在屏幕上收到JS错误。

结果中没有空值。

但是,抛出了下面提到的错误。

DataTables警告:表id = summaryResults1-请求第0行第0列的未知参数'workCategory'。有关此错误的更多信息,请参见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 \“:\”工作类别\“,....,\” queue \“:\”队列名称\“}]”,“绘制”:2,“ recordsTotal”:750}

1 个答案:

答案 0 :(得分:1)

Technical note #4精确地指出了问题:

  

这将表明使用columns.data的列已被   无法获取有效数据以显示-例如:

{ data: 'Name' }
     

如果该行的数据源对象没有Name,将产生此错误   参数或数据为nullundefined

您从服务器端脚本返回的响应很可能没有workCategory属性。

在您的响应中,您的data属性在服务器上两次被编码为JSON格式,这就是DataTables找不到任何数据的原因,因为data是一个字符串,应该是数组。