Comment supprimer la ligne courante avec le plugin jQuery datable
j'ai une colonne avec des boutons dans une table j'utilise le plugin jQuery datatable. Les boutons "Supprimer" et l'idée est que lorsque vous cliquez sur ce bouton, il supprime la ligne courante dans le tableau.
Lorsque j'appelle fnDeleteRow
il semble que cela fonctionne la première fois, mais pas plus de temps pour cette rangée donc il semble que cela ne supprime pas vraiment la rangée correctement.
5 réponses
essaye ceci:
var row = $(this).closest("tr").get(0);
oTable.fnDeleteRow(oTable.fnGetPosition(row));
si cela ne fonctionne pas, cochez la case exemple
supposons que vous attachiez une fonction à appeler lorsque l'utilisateur clique sur le bouton. La fonction serait quelque chose comme ceci
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();
}
Que Diriez-vous de ceci:
// Delete Row
$('.glyphicon-minus').on("click", function() {
configTable.row($(this).closest("tr").get(0)).remove().draw();
});
$('#example tbody td').click( function () {
/* Get the position of the current data from the node */
var aPos = oTable.fnGetPosition( this );
//...
} );
C'est comment cela fonctionne pour moi. Dans la fonction document ready j'assigne la version convertie de la table HTML à une variable et quand un bouton dans le est cliqué je passe par parents/childs avec JQuery et j'envoie la ligne que vous obtenez comme paramètre à la fonction fnDeleteRow() de la bibliothèque.
Voici les commentaires de la fonction bibliothèque. Et un exemple qui est mentionné dans la bibliothèque.
/**
* 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);
});