2017-11-25 1 views
0

Ich möchte permanentwird die gelöschte Zeile beim Klicken auf | angezeigt Fehler

Datentabelle Zeile löschen, wenn ich alle Zeilen löschen, i Datatable wollen wird die Standard-„Keine Daten vorhanden“ Text angezeigt werden soll.

Ich versuche schon einige POST:Aber kein Glück

DataTables remove row buttonmit Antwort:

$("#dataTables-example").on('click', '.btn-info', function() { 
     $(this).parent().parent().remove(); 
    }); 

I cannot remove row with jQuerymit Antwort:

$('tbody tr:last-child').remove(); 

Aber, wenn ich alle Zeilen löschen, wird der Text „Keine Daten vorhanden“ nicht erscheinen. und wenn thead angeklickt wird, wird die gelöschte Zeile angezeigt.

========================

MY JSFiddle

jQuery löschen Zeile:

$(document).on('click', '.deleteRow', function() { 
$(this).closest('tr').remove(); 
}); 

in Datatable func:

"columns": [ 
     { "data": "id"}, 
     { "data": "name" }, 
     { "data": "subtype"}, 
     { "data": "approximate_count" }, 
     { "data": "time_created" }, 
     {data: null , 
     "sClass" : "center", 
     "sDefaultContent" : '<button class="deleteRow">Delete</button> ' 
     }, 
     ], 

Antwort

2

Für Standardtext angezeigt wird, können Sie

$('#example').DataTable({ 
    "language": { 
     "emptyTable": "My Custom Message On Empty Table" 
    }, 
    rowId: id 
}); 

zum Löschen Zeile Verwendung versuchen,

Sie müssen auch Daten aus Backend entfernen Ajax. Als Sie unten Funktion verwenden können.

$(document).on('click', '.deleteRow', function(e) { 
    var id = $(this).parents('tr').attr('id'); 
    var rowid = document.getElementById(id); 
    var Pos = table.fnGetPosition(rowid); 
    table.fnDeleteRow(Pos); 
}); 

Bitte überprüfen Sie jsfiddle.

JSFIDDLE

+0

Sorry, das ist nicht was ich meine. Ich möchte, wenn ich alle Zeilen gelöscht habe, wird die DataTable den Text "Keine Daten verfügbar". Aber in meiner jsfiddle zeigt eine leere Tabelle, wenn alle Zeilen bereits gelöscht. – Ananda

+0

können Sie mir helfen, wie Sie Ihren löschenden Zeilencode in jsfiddle eingeben ?? – Ananda

+0

Bitte überprüfen Sie die aktualisierte Geige. Alle Probleme sind gelöst. –

0

sollten Sie setzen DataTable() Plugin verwenden, nicht dataTable().

Dann, um die relevante Zeile zu löschen, können Sie verwenden: myTable.row(':eq(' + $(this).closest('tr').index() + ')'). Vielleicht gibt es einen besseren Weg, aber ich weiß nicht genug Datatable-Plugin.

Siehe jsFiddle.

Und benutzerdefinierte Nachricht zu erhalten, wie in @PratikGadoya's answer, erläutert, siehe jsFiddle.

1

Durch Löschen des Elements aus dem DOM löschen Sie die Daten nicht tatsächlich aus dem Speicher der DataTable. Sie müssen die DataTable's API methods verwenden, um die Tabelle zu bearbeiten (hinzufügen, bearbeiten, löschen usw.).

Weisen Sie einer Variablen den Rückgabewert der DataTable() - Methode zu. Dies ist der Verweis auf das DataTable-Objekt.

Zum Beispiel:

var table = $("myTable").DataTable({ 
    // DataTable options goes here 
}); 

, jetzt eine bestimmte Zeile zu löschen, verwenden, um die Zeile() Methode remove() in dem OnClick Ereignishandler der Schaltfläche Remove wie unten gezeigt..

$(".removeButton").click(function () { 
     table.row($(this).parents('tr')).remove().draw(); 
}); 

Here ist die API-Referenz für diese Methode.

+0

IMO die richtige Antwort, hier ist OP Fiddle mit dem benötigten oneliner aktualisiert -> ** https: //jsfiddle.net/oawftt7z/3/** – davidkonrad

Verwandte Themen