2017-08-28 122 views
-1

我正在處理用戶單擊按鈕時加載新的數據表。新的數據表由服務器端腳本填充。當用戶點擊按鈕時,數據表掛起並顯示「正在處理」。數據表處理錯誤

$('#QuerySelectedBtn').on('click', function(event) {event.preventDefault(); 
    $("#example").dataTable().fnDestroy(); 
    var table = $('#example').DataTable({ 
      "processing": true, 
      "serverSide": true, 
      "ajax":{ 
      url: './datasource02.php', 
      type: 'get', 
       error: function(){ // error handling 
        $(".example-error").html(""); 
        $("#example").append('<tbody class="example-error"><tr><th colspan="3">No data found in the server</th></tr></tbody>'); 
        $("#example_processing").css("display","none"); 
        } 
       }, 
       "columns": [ 
       { "data": "ID" }, 
       { "data": "user_id" }, 
       { "data": "option_name" }, 
       { "data": "option_value" } 
       ], 
       "order": [], 
       "dom": 'lfrtipB',   
       "buttons": { 
       "dom": { 
        "button": { 
         "tag": "button", 
         "className": "btn" 
        } 
        }, 
        "buttons": [ 
         { extend: 'copy', text: 'Copy' }, 
         { extend: 'csv', text: 'CSV' }, 
         { extend: 'excel', text: 'Excel' }, 
         { extend: 'pdf', text: 'PDF' }, 
         { extend: 'print', text: 'Print' } 

        ] 
       } 
      }); 
     }); 
+0

是什麼datasource02.php返回:dataTable().fnDestroy();這不會DataTable(); API

僅供參考工作? – Chris

+1

也許您的瀏覽器devloper控制檯顯示任何錯誤。讓我知道這些錯誤。 –

+0

這是控制檯中的錯誤:Uncaught TypeError:無法讀取未定義的屬性'樣式' – zzMzz

回答

0

解決方案:而不是使用此行$("#example").dataTable().fnDestroy();下面的代碼使用

var table = $('#example').DataTable(); 
table.destroy(); 

原因:

1. $("#example").dataTable();` // .fnDestroy() works 

2 . $("#example"). DataTable();' // .fnDestroy() doesn't work 
            //.destroy(); will work 

問題在當前配置:

你使用這個API:https://datatables.net/reference/api/

+0

感謝您提供此信息!儘管如此,這並沒有解決問題。我發現問題與數據表中的行數有關。我加載的初始數據表有三個列,我加載的第二個數據表有四列。在使用在HTML中添加四列後,加載第二個表格。我需要弄清楚如何隱藏/顯示這個列。 – zzMzz

+0

我能夠在調用服務器端數據源的Jquery代碼中添加列定義。我從HTML中刪除了cols,它完美地工作。 – zzMzz

+0

好享受編碼@MikeG –