数据表aoColumnDefs不加载服务器端数据

时间:2016-02-27 20:42:37

标签: jquery ajax datatables

我正在使用datatable来显示表中的记录并调用ajax来获取服务器端的响应,如果我添加“success”回调功能,它可以正常运行Ajax中的“success”回调属性, 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 个答案:

答案 0 :(得分:1)

您不应该使用jQuery DataTables内部使用的success属性,请参阅this note

  

success - 不得覆盖,因为它在DataTables内部使用。要操作/转换服务器返回的数据,请使用ajax.dataSrc,或使用ajax作为函数。

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

例如:

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