DataTable服务器端处理,处理在返回data = null时卡住

时间:2017-01-01 18:53:30

标签: datatables

我在搜索查询返回null时遇到以下错误。

Cannot read property 'length' of null

这是我的数据表js

 var thisTable = $('#tb').DataTable({
          "processing": true,
            "serverSide": true,
            "ajax": {
                url: '/user.js',
                type: 'POST',
                data: function ( d ) {
                d.r1 = $('#custom1').val();
                d.r2 = $('#custom2').val();
                // etc
            }
            },

正如我所知,在客户端数据表中,如果没有数据显示消息。如何在服务器端处理中显示没有数据找到消息?

2 个答案:

答案 0 :(得分:0)

这是因为Datatables不会呈现空值。 使用defaultContent。

$('#example').dataTable( {
  "columnDefs": [{
      "data": null,
      "defaultContent": "default content",
      "targets": ['_all']
  }]
} );

参考:https://datatables.net/reference/option/columns.defaultContent

答案 1 :(得分:0)

data souldnt为空值,检入url: '/user.js'文件,如果data为空,则返回data=""之类的空字符串。 用于php

$output = array(
            'draw' => 1,
            "recordsTotal" => 10,
            "recordsFiltered" => 10,
            'data' => array()
        );

//some functions to get data called $aaData

$output['data'] = $aaData ?: "";

数据表行为将是应该的。