0

我正在使用 Datatables 中的示例从表中删除行。这工作正常,一一但我需要选择和删除多行的能力。我评论了//.removeClass('row_selected');这样用户可以在视觉上选择多行,但这些行一次只能删除一行。想法? https://datatables.net/release-datatables/examples/api/select_single_row.html

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');
}*
4

2 回答 2

8

这将删除多行...

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

这比使用 dataTables 中的内置删除方法更可取,因为它在某一时刻发生了相当大的变化。最初,它会在删除之间保留行索引,因此您可以删除第 1 行,然后是第 2 行,然后是第 3 行等。然后对其进行更改,以便您可以删除第 1 行,第 2 行将成为第 1 行,所以您d 必须再次删除第 1 行等。

使用上述方法只是直接从表中删除行,这更容易,如果随时更改 dataTables 的版本,也可以为您省去麻烦。

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

于 2013-10-23T16:43:55.633 回答
3

这是我的版本,它将删除多行并更新页脚中的数据信息

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

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

数据表有删除功能行,但只有 1 行。所以我只是循环它。信息也会更新。

显示 1 到 3 个条目,共 3 个条目

这是我的代码和演示

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

于 2014-04-10T11:13:01.433 回答