提问者:小点点

Datatable aoColumnDefs未加载服务器端数据


我正在使用datatable显示表中的记录,并调用ajax从服务器端获取响应,它在ajax中没有“成功”回调属性的情况下运行良好,如果我添加了“成功”回调功能,aoColumnDefs没有加载服务器端数据,有人能告诉我这个问题的原因是什么,还是我遗漏了什么?

请参考下面给出的示例代码。

$('#country').dataTable({
                "autoWidth": true,
                "processing": true,
                "scrollY" : 450,
                "language": {
                    "zeroRecords": "",
                    "emptyTable":  "No Data Available",
                    "loadingRecords": "",
                    "processing":     "Processing  ",
                },

            "ajax": {
                "url": serviceURL,
                "type": "POST",
                "contentType": 'application/json',
                "dataType":"json",
                "data" : function ( d ) {
                        return JSON.stringify(request)
                        },
                "success": function(data, textStatus, jqXHR)
        {
       //       Based on the server side response i am trying to show the response that is result data or exception message.
            }                           
            },
            "aoColumnDefs" : [  {
                    "mData": "location",
                    "sWidth": "15%",
                    "title": column1Title,

                },{
                        "mData": "date",
                }       

            ]});

我的目标是基于服务器端响应,我希望显示结果表或异常消息。


共1个答案

匿名用户

您不应该使用success属性,它是由jQuery DataTables内部使用的,请参见此注释:

success-不能被重写,因为它在数据表中内部使用。要操作/转换服务器返回的数据,请使用ajax。dataSrc,或将ajax用作函数。

要处理Ajax错误,可以将Ajax用作函数或处理xhr事件。应在DataTables初始化之前附加事件处理程序。

例如:

$('#country')
    .on('xhr.dt', function ( e, settings, json, xhr ) {
       if(json === null){
          // Ajax error
       }
    })