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" 🙁
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
Vous devez vous connecter pour publier un commentaire.
code ci-dessous montrent comment supprimer des lignes à l'aide personnalisé de la commande de suppression.
Espérant que cela puisse aider
OriginalL'auteur Abbas Galiyakotwala
La grille prend déjà en charge de créer, mettre à jour et supprimer des enregistrements. Vous ne devriez pas essayer de les appliquer sur votre propre.
Vous devez définir détruire sur votre source de données comme ici
Aussi, vous pouvez allumer l'supprimer confirmation
EDIT:
Pour conditionnellement montrer supprimer des boutons, vous pouvez raccorder le DataBound-Événement de la grille. Vous avez également besoin d'une indication si ou de ne pas afficher le bouton. J'ai utilisé une propriété appelée HideButton dans mon exemple. Vous devrez peut-être ajuster la classe .k-grille-supprimer le reste devrait fonctionner.
Casey veuillez voir mon edit
OriginalL'auteur Vanice