2016-04-21 516 views
0

後,我得到了一個HTML表格tabDevis刷新dataTable的表更新

<table id="tabDevis" class="invisible stripe"> 
    <thead> 
     <tr> 
      <th>numDevis</th> 
      <th>libProduit</th> 
      <th>codEtat</th> 
     </tr> 
    </thead> 
    <tbody></tbody> 
</table> 

我把一些數據與Ajax調用。這些數據來自數據庫。隨着代碼是在一個函數:

function putDevis() { 
    var listeDevis = $("#tabDevis").find("tbody"); 

    var request = $.ajax({ 
    type : "GET", 
    url : "/services/opp/getDevis/", 
    cache : false 
    }); 

    request.done(function(msg) { 
    for (var i = 0; i < msg.length; i++) { 
     var devis = msg[i]; 
     var tr = $("#template").clone(); 
     tr.removeAttr("id"); 
     tr.attr('id', 'devis-' + devis.id); 
     tr.find('#numDevis').html(devis.idOpportunite); 
     tr.find("#codProduit").html(devis.codProduit); 
     tr.find("#libProduit").html(devis.libProduit); 

     listeDevis.append(tr); 
    } 
    } 

    request.fail(function(jqXHR, textStatus, errorThrown) { 
    // Deal with the error 
    } 

    // Call dataTable 
    $('#tabDevis').DataTable({ 
    "order" : [ [ 1, "desc" ] ], 
    "oLanguage" : { 
     ... 
    } 
    "aoColumns" : [ { 
      "bSortable" : true 
     }, { 
      "bSortable" : true 
     }, { 
      "bSortable" : true 
    }] 
    } 
} 

我從另一種方式刪除我的數據庫中的一行,所以我想重新加載html表。我打電話給我的putDevis()函數,但我仍然得到從數據庫中刪除的刪除行。

function deleteDevis(numDevis){ 

    var requestsup = $.ajax({type: "GET", 
     url: "/services/ep/deleteDevis?pId=" + numDevis 
     cache: false 
    }); 

    requestsup.done(function(msg){ 
    putDevis(); 
    }); 

    requestsup.fail(function(jqXHR, textStatus, errorThrown) { 
    // Deal with errors 
    }); 
} 

什麼是刷新數據表的方式:

此刪除操作與另一個javasript功能做了什麼?

我試着在我的putDevis()調用之前調用$('#tabDevis').dataTable().fnDestroy();,但它不起作用。

編輯有關解決方案

的方法就是要摧毀的dataTable就在那裏:

var table = $('#tabDevis').DataTable(); 
table.destroy(); 
var listeDevis = $("#tabDevis").find("tbody"); 

然後DataTable中調用後繪製:

var table = $('#tabDevis').DataTable(); 
table.draw(); 
+0

* $( '#tabDevisClient')*是不是比你用來初始化數據表* $( '#tabDevis')*各一本使用不同的元素ID? HTML頁面上是否存在帶有* #tabDevisClient * ID的元素? –

+0

編輯問題,這是很好的tabDevis在這兩種情況下 – user3469203

回答

0

可以使用一些事像這樣:

var refreshinterval = 30000; 
setInterval(putDevis, refreshinterval); 
+0

我需要刷新剛剛當用戶從數據庫中刪除一行(這是用另一個Ajax調用完成) – user3469203

+0

當另一個Ajax調用發生?在什麼事件? – Sagar

+0

用刪除ajax調用完成的編輯 – user3469203