2016-02-27 60 views
0

我正在使用datatable來顯示錶中的記錄和調用Ajax從服務器端獲得響應,它是工作正常與Ajax中的「成功」回調屬性,如果我添加「成功「回撥功能, aoColumnDefs不加載服務器端數據,任何人都可以建議這個問題的原因是什麼,或者我錯過了什麼?Datatable 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的數據表內部使用,請參閱this note

success - 因爲它是在數據表內部使用必須不能被重寫。要操作/轉換服務器返回的數據,請使用ajax.dataSrc或使用ajax作爲函數。

要處理Ajax錯誤,您可以使用ajax作爲函數或處理xhr事件。在 DataTables初始化之前,應該附加事件處理程序

例如:

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

感謝您的輸入,這樣纔有利於處理應用程序異常?爲了成功json響應aoColumnDefs將數據加載到數據表中,我將重點放在失敗的json響應上,請告知 –

+0

ajax.dataSrc工作正常。 –