Comment puis-je supprimer une ligne d'une Grille de Kendo

J'ai une configuration très simple, une grille appelée #liste avec une source de données renseigné avec les enregistrements à afficher.

J'ai un bouton sur chaque ligne avec un événement onClick qui appelle cette fonction:

    //Soft-Delete person
    var processURL = crudServiceBaseUrl + '?method=deletePerson';
    function deletePerson(id){
        if (confirm('#getResource("person.detail.confirmdel")#')) {
            $.ajax({
                type: 'POST',
                url: processURL,
                data: {
                    PERS_KY: id
                },
                success: function (data){
                    var thingToDelete = "tr:eq("+id+")";
                    var grid = $("#list").data("kendoGrid");
                    grid.removeRow(thingToDelete);
                },
                error: function (xhr, textStatus, errorThrown){
                    alert("Error while deleting person"+ "\n"+ xhr + "\n"+ textStatus + "\n" + errorThrown);
                }
            });
        }
    }

The server-side stuff works fine, the interaction with the database is good. However, the row does not disappear from the grid.

Anyone?

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

In answer to the comments below, here is the revised function:

var processURL = crudServiceBaseUrl + '?method=deletePerson';
function deletePerson(id, row){
    if (confirm('#getResource("person.detail.confirmdel")#')) {
        $.ajax({
            type: 'POST',
            url: processURL,
            data: {
                PERS_KY: id
            },
            success: function (data){
                var thingToDelete = row;
                var grid = $("#list").data("kendoGrid");
                grid.removeRow(thingToDelete);
            },
            error: function (xhr, textStatus, errorThrown){
                alert("Error while soft-deleting person"+ "\n"+ xhr + "\n"+ textStatus + "\n" + errorThrown);
            }
        });
    }
}

Tout cela fonctionne très bien, la base de données est remplie et la grille.removeRow() rend la ligne fade out, mais alors le rechargement de la page, que je ne veux pas.

Aucune idée de la façon d'arrêter de le recharger la page?

Votre code semble ok, il devrait fonctionner. avez-vous essayez de déboguer si thingToDelete contenir la ligne droite/élément ?
Avez-vous essaye de changer de type de 'POST 'SUPPRIMER'? Nous aurions probablement besoin de plus d'informations pour résoudre ce problème, vous pouvez poster votre processURL fonction et le serveur d'application du code des votre de supprimer api?
Aussi, vous pouvez essayer d'utiliser un violon pour voir ce que votre code est l'envoi et la un message d'erreur à partir de votre api. Telerik ont une gratuite fiddler ici telerik.com/fiddler
Salut à tous. @machun. Oui, c'était un des problèmes. La " id " j'ai été en passant représenté dans la base de données id de l'enregistrement, et non pas l'élément de ligne. Depuis, j'ai modifié la fonction de prendre un deuxième argument de ligne et modifié la ligne "de la grille.removeRow(ligne);". Cela rend la ligne disparaissent (yay!!!) mais conduit à un autre problème plus tard (boo!)
méthode de SUPPRESSION n'est pas pris en charge par cette URL" 🙁

OriginalL'auteur Junglefish | 2015-07-02