2016-04-21 517 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