2013-01-16 47 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