2013-10-23 25 views
0

我正在使用Datatables的示例從表中刪除行。這工作正常,一個接一個,但我需要選擇和刪除多行的功能。我評論了//.removeClass('row_selected');,以便用戶在視覺上能夠選擇多於一行,但行仍然一次只刪除一行。想法? https://datatables.net/release-datatables/examples/api/select_single_row.html只需點擊一下刪除多個選定的DataTable行?

http://jsfiddle.net/BWCBX/22/

的jQuery

var oTable; 

$(document).ready(function() { 
    /* Add a click handler to the rows - this could be used as a callback */ 
    $("#example tbody tr").click(function(e) { 
     if ($(this).hasClass('row_selected')) { 
      $(this).removeClass('row_selected'); 
     } 
     else { 
      oTable.$('tr.row_selected')//.removeClass('row_selected'); 
      $(this).addClass('row_selected'); 
     } 
    }); 

    /* Add a click handler for the delete row */ 
    $('#delete').click(function() { 
     var anSelected = fnGetSelected(oTable); 
     if (anSelected.length !== 0) { 
      oTable.fnDeleteRow(anSelected[0]); 
     } 
    }); 

    /* Init the table */ 
    oTable = $('#example').dataTable(); 
}); 


/* Get the rows which are currently selected */ 
function fnGetSelected(oTableLocal) 
{ 
    return oTableLocal.$('tr.row_selected'); 
}* 

回答

5

這將刪除多行...

$('#delete').click(function() { 
    var anSelected = fnGetSelected(oTable); 
    $(anSelected).remove(); 
}); 

這是優選的,以在數據表作爲使用內置刪除方法它一度發生了巨大的變化。最初,它將在刪除之間保留行索引,因此您可以刪除第1行,然後刪除第2行,然後刪除第3行等。然後更改它,以便刪除第1行,第2行將變爲第1行你必須再次刪除第1行等。

使用上述方法只是直接從表中刪除行,這會更容易,並且如果隨時更改dataTable的版本,將會使您省卻麻煩。

http://jsfiddle.net/BWCBX/23/

+0

這正是我需要的。我一直在想。謝謝! – triplethreat77

+1

沒問題 - 很高興幫助:) – Archer

+0

我用這種方法刪除表中的行,但我也有一個添加行功能。我不知道爲什麼當我刪除多行/單行後添加新行時,刪除的行會被添加回其特定的位置。我希望你能幫助我。 – newbie

3

這裏我的版本,它會刪除多行和更新數據信息在頁腳

$('#delete').click(function() { 
    var anSelected = fnGetSelected(oTable); 

    for (var i = 0; i < anSelected.length; i++) { 
     oTable.fnDeleteRow(anSelected[i]); 
    }; 
}); 

DataTable中有刪除的功能行,但只有1行。所以我只是循環它。信息也會更新。

顯示1至3共有3項

這裏我的代碼和演示

http://jsfiddle.net/BWCBX/95/

+0

的表格信息,當您想要刪除無法看到的條目時不能與分頁工作..:/ – tObi

相關問題