2013-01-16 46 views
1

我有我用jQuery数据表构建的htnl表。我使用的代码是:jquery datatables - 刷新不起作用

var oTable = jQuery('#webcam-table').dataTable({ 
    "sPaginationType": "full_numbers", 
    "bStateSave": true, 
    "aaSorting": [[1,"desc"]], 
    "aoColumnDefs": [ 
    { "bSortable": false, "aTargets": [ 4 ] } 
    ] 
}); 

此表还具有与每行一个复选框,其中用户可以选择一个或多个点,并触及删除按钮的形式。这使用jquery ajax

jQuery(".deletebutton").on("click", function(e) { 
    e.preventDefault(); //cancel click event on start 
    var testchecked = jQuery(':checkbox:checked').length; 
    if (testchecked == 0) { 
     alert('Please select at least one video'); 
     e.preventDefault(); 
    } 
    else 
    { 
     if (confirm("Are you sure you want to delete the selected videos?")) 
     { 
      var checked = jQuery('input:checkbox:checked').map(function() { 
       return this.value; 
      }).get(); 
      var $this = jQuery(this); 
      jQuery.ajax({ 
       type: 'POST', 
       url: 'index.php?option=com_recordings&task=deletevideos&format=raw', 
       data: {checkedarray:checked}, 
       success: function(data){ 
        jQuery('#deleteform input:checkbox').each(function(){ 
         if(this.checked){ 
          jQuery('input:checkbox:checked').parents("tr").remove(); 
         } 
        }); 

       } 
      }); 
     } 
    } 
}); 

这样做是删除表中的一行。这是我有一个dataTable的问题,因为它有页面,当我删除一个或多个它不会刷新表。

所以我想我应该能够添加fnDraw到代码:

jQuery('#deleteform input:checkbox').each(function(){ 
     if(this.checked){ 
      jQuery('input:checkbox:checked').parents("tr").remove(); 
     } 
oTable.fnDraw(); 

我认为这将刷新表我的AJAX删除后,我已经删除了一行之后。但是这甚至不会删除该行,也不会相应地更新表。当然,当我手动刷新页面时,一切都很好。关于如何删除所选行然后刷新dataTable的任何想法?

回答

3

DataTable API具有删除行功能。

fnDeleteRow 为表中删除一行

输入参数:

  • {混合}:从aoData的行的索引将被删除,或TR 元件要删除
  • {function | null}:回调函数
  • {bool} [default = true]:重新绘制表格

返回参数:
{}数组:被删除

代码示例行:

$(document).ready(function() { 
    var oTable = $('#example').dataTable(); 

    // Immediately remove the first row 
    oTable.fnDeleteRow(0); 
}); 
+0

HRM,看起来就像是最好的选择。我想我必须循环并删除所有已被选中的内容。更不用说添加某种索引了。 – Tom