Question

J'ai une colonne avec des boutons dans un tableau que je utilise le plugin jQuery datatable. Les boutons disent « Supprimer » et l'idée est que lorsque vous cliquez sur ce bouton, il supprime la ligne en cours dans le tableau.

Quand j'appelle fnDeleteRow il semble fonctionner la première fois, mais pas tout le temps supplémentaire pour cette ligne de sorte qu'il ressemble à son pas vraiment supprimer la ligne correctement.

Était-ce utile?

La solution

Essayez ceci:

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

Si cela ne fonctionne pas, vérifiez les

Autres conseils

Disons que vous avez joint 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 ceci:

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

cette page :

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

    //...
} );

Voilà comment cela fonctionne pour moi. Dans le document fonction prêt-je attribuer version convertie de la table HTML à une variable et quand un bouton dans l'est cliqué je passe par les parents / Childs avec JQuery et envoie la ligne que vous obtenez en tant que paramètre à la fonction fnDeleteRow () de la bibliothèque.

Voici les commentaires est de la fonction de 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);
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top