Javascript DataTables延迟加载列选项

Javascript DataTables延迟加载列选项,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,我正在使用jQuery数据表的服务器端处理模式(“serverSide”:true)。我正在使用优化页面加载时间 我也在使用columns选项,但是当我自己定义columns选项时,会出现一些冲突。当第一次调用没有数据源时,它会尝试查找数据源,这是延迟加载的关键 未捕获错误:DataTables警告:表id=表-为第0行请求的未知参数“id”。有关此错误的详细信息,请参阅 初始化代码: function initialize_table(inital_length) { table_op

我正在使用jQuery数据表的服务器端处理模式(
“serverSide”:true
)。我正在使用优化页面加载时间

我也在使用
columns
选项,但是当我自己定义
columns
选项时,会出现一些冲突。当第一次调用没有数据源时,它会尝试查找数据源,这是延迟加载的关键

未捕获错误:DataTables警告:表id=表-为第0行请求的未知参数“id”。有关此错误的详细信息,请参阅

初始化代码:

function initialize_table(inital_length)
{
    table_options = {
        "serverSide": true,
        "ajax": {
            "url": '/merchant/all/',
            "type": 'POST',
            "deferRender": true,
            // data: JSON.stringify(data),
            // contentType: "application/json",
        },
        // "order": [[0, 'asc']]
        "deferRender": true,
        "processing": true,
        "pageLength": 50,
        "deferLoading": inital_length,
        "lengthMenu": [ 20, 50, 100, 200, 500 ],
        "columnDefs": [
            {
                // "class": "details-control",
                'data': 'gr_id', // response[data]
                'name': 'gr_id', 
                'orderable': true,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 0,
            },
            { 
                'data': "name",
                'name': 'name',
                'orderable': true,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 1,

            },
            { 
                'data': "address",
                'name': 'address',
                'orderable': false,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 2,
            },
            {
                'data': "category",
                'name': 'category',
                'orderable': true,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 3,
            },
            {
                'data': "chain",
                'name': 'chain',
                'orderable': true,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 4,
            },
            {
                'data': "enabled",
                'name': 'enabled',
                'orderable': true,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 5,
            },
            {
                'data': 'status',
                'name': 'status',
                'orderable': true,
                'search': {'regex': false, 'value': ''},
                'searchable': true,
                "targets": 6,
            }
        ],
    }
    var merchant_table = $("#merchant-table").DataTable(table_options);
}

延迟加载
选项与
列.数据
一起使用的错误出现在DataTables论坛中。我可以使用,但不使用v1.10.3以后的版本来重现这个bug,所以我们可以说这已经被修复了。这可能是因为“能够将columns.data与来自DOM的数据一起使用,将行信息读入对象而不是数组中”

因此,您可以:

1) 首先确保您正在使用


2) 检查JSON响应。根据您的评论,您使用的是,但当您设置该选项时,必须使用。

此错误通常意味着数据格式不正确,请参阅详细信息。如果将
延迟加载
服务器端:true
一起设置为正数,则它不应在第一次调用时请求数据,可能还有其他错误导致此情况。请显示DataTables初始化代码和服务器返回的数据。如果我没有定义
,或
列定义
(然后它使用默认值,通过索引引用列),则不会引发错误。使用最新版本。在页面加载时出现错误——当它甚至没有发出ajax请求时——因此没有得到JSON响应,第一次加载页面时,服务器呈现html。还有,我使用的对象数据源类型不是吗?它是一个对象数组,就像文档中一样?错误最终在于我的
“columns”
定义,因为在删除它时,它按预期工作(当它使用默认值时)。好吧,新版本修复了这个问题