2009-12-18 9 views
29

Ich habe eine Spalte mit Schaltflächen in einer Tabelle Ich benutze jQuery Datatable-Plugin. Die Schaltflächen sagen "Remove" und die Idee ist, dass wenn Sie auf diese Schaltfläche klicken löscht es die aktuelle Zeile in der Tabelle.So löschen Sie die aktuelle Zeile mit jquery Datatable Plugin

Wenn ich fnDeleteRow rufe, scheint es das erste Mal zu funktionieren, aber keine weitere Zeit für diese Zeile, so dass es aussieht, als würde es die Zeile nicht wirklich löschen.

+0

Benötigen Sie weitere Informationen? Verwenden Sie Ajax, um Ihre Datentabelle zu füllen, oder konvertieren Sie eine statische HTML-Tabelle? Außerdem: Warum sind die Daten nicht mehr korrekt? verschiebt Datentabelle nicht die tr (und die entsprechenden ID-Tags) auf sort? – r00fus

Antwort

61

Versuchen Sie dies:

// Delete Row 
    $('.glyphicon-minus').on("click", function() { 
     configTable.row($(this).closest("tr").get(0)).remove().draw(); 
    }); 
+1

+1, aber ich denke, am nächsten wäre eine geeignetere Wahl als Eltern – cobbal

+0

Ich habe es am nächsten, aber danach hat es perfekt funktioniert. Vielen Dank – leora

+0

Warum haben Sie .get (0) hinzugefügt? Danke, es funktioniert für mich. – Shahin

0

von this page:

$('#example tbody td').click(function() { 
    /* Get the position of the current data from the node */ 
    var aPos = oTable.fnGetPosition(this); 

    //... 
}); 
+0

aber ich klicke auf eine Schaltfläche in einer Zelle – leora

2

Angenommen, Sie haben eine Funktion gebunden aufgerufen werden, wenn der Benutzer auf die Schaltfläche klickt. Die Funktion wäre so etwas wie dieses

function DeleteRow(event) 
{ 
    //get the row of the cell that is clicked 
    var $row = $(this).parents("tr").eq(0) 
    //if you need the id you can get it as 
    var rowid = $row.attr("id"); 
    //now you can call delete function on this row 
    $row.delete(); 
} 
+4

Dies scheint nicht zu funktionieren .. – leora

1

Wie wäre dies nicht funktioniert, überprüfen So funktioniert es für mich. In der Document Ready-Funktion weise ich eine konvertierte Version der HTML-Tabelle einer Variablen zu und wenn eine Schaltfläche in der angeklickt wird, gehe ich mit jQuery durch eltern/childs und sende die Zeile, die du als Parameter erhältst, an die fnDeleteRow() -Funktion der Bibliothek.

Hier sind die Kommentare aus der Bibliotheksfunktion. Und ein Beispiel, das in der Bibliothek erwähnt wird.

/** 
* Remove a row for the table 
* @param {mixed} target The index of the row from aoData to be deleted, or 
* the TR element you want to delete 
* @param {function|null} [callBack] Callback function 
* @param {bool} [redraw=true] Redraw the table or not 
* @returns {array} The row that was deleted 
* @dtopt API 
* @deprecated Since v1.10 
* 
* @example 
* $(document).ready(function() { 
*  var oTable = $('#example').dataTable(); 
* 
*  // Immediately remove the first row 
*  oTable.fnDeleteRow(0); 
* }); 
*/ 

// And here's how it worked for me. 
var oTable; 
$("document").ready(function() { 
    oTable = $("#myTable").dataTable(); 
}); 

//Remove/Delete button's click. 
$("a[name='deleteColumn']").click(function() { 
    var $row = $(this).parent().parent(); 
    oTable.fnDeleteRow($row); 
}); 
0

:

var row = $(this).closest("tr").get(0); 
oTable.fnDeleteRow(oTable.fnGetPosition(row)); 

Wenn es die folgenden example