Voici un Demo à pour le comportement que j'exprime. P>
Si vous modifiez la ligne existante avec ID 1, modifiez le texte en quelque chose d'autre, puis appuyez sur la touche Annuler, la ligne est correctement rétablie à son état précédent. P>
Afin de reproduire mon problème, vous devez: p>
Même s'il existe des questions similaires à ce problème, je n'ai pas encore trouvé de réponse satisfaisante. P>
Certaines personnes disent que j'ai besoin de définir un identifiant. Comme vous pouvez le voir de ma démo, cela ne fait aucune différence, la nouvelle ligne a une pièce d'identité et elle disparaît toujours. P>
Il y a quelques suggestions lorsque vous utilisez une source de données distante, mais cela ne fonctionne pas dans mon cas, je dois utiliser des données locales. P>
Enfin, il y a Cette répond. Bien que cela empêche la nouvelle ligne de disparaître, l'annulation de la ligne ne revienne pas les données à son ancien état, elle ferme uniquement l'éditeur et les données sont telles qu'après la modification. P>
5 Réponses :
Cela se produit car l'identifiant reste défini sur sa valeur par défaut. La source de données considère que ces éléments de données sont "nouveaux" et les annulant les supprime. Une fois que vous avez enregistré un "nouveau" élément, vous devez définir son ID code> sur une valeur non par défaut. P>
Je fixe la valeur de l'ID, la colonne est modifiable. Et même si je ne le faisais pas, je ne comprends pas pourquoi l'annulation de l'édition de nouveaux articles devrait les supprimer, cela n'a aucun sens pour moi.
J'ai modifié vos modifications avec ce CLUCKR , et il semble fonctionner. Le seul changement que j'ai fait était de renommer la colonne «ID» à «Idé».
D'une manière ou d'une autre, le nom de la colonne "ID", comme indiqué dans les exemples de Kendo ne fonctionne pas, et cela ressemble à un bug. p>
Cela semble être un bug uniquement. Mais vous pouvez toujours obtenir la sortie souhaitée à travers le code ci-dessous.
Lorsque l'utilisateur clique sur le bouton Annuler <!DOCTYPE html>
<html>
<head>
<title>Test</title>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.common.min.css" />
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.default.min.css" />
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="grid"></div>
<script src="http://cdn.kendostatic.com/2014.1.318/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js"></script>
<script src="script.js"></script>
</body>
</html>
Cela fonctionne réellement parfaite. Pour tous les futurs lecteurs -> Très important <- Assurez-vous d'inclure son code pour supprimer l'événement. sinon ur pour un autre bug.
avait le même problème. Je l'avais résolu en appelant simplement la méthode CancelChanges () de la DataSource:
Votre solution fonctionnera si nous ne mettrons pas à jour le disque. Si nous mettons à jour l'enregistrement, il créera de nouveaux enregistrements car il n'y a pas de moyen unique de renvoyer la ligne. Cochez cette case PLNKR.CO/EDIT/TXCRIJSJOAYQCP5IPMTIO?p=preview
Je pourrais résoudre ce problème en redémarrant l'objet de données après ajout de nouvelle ligne.
Par exemple: p> en appelant la méthode des données () Grille que les nouvelles données asignées sont les données de base et les nouvelles lignes ne sont plus nouvelles. p> J'espère que cela vous aidera. P> P>
Cela ressemble à un bug, non? L'avez-vous signalé?
Oui. Mais comme je ne suis pas aussi expérimenté avec Kendo, je suppose toujours que j'ai fait quelque chose de mal :-) Bien sûr, si personne ne pointe une erreur dans mon code, je le signalerai comme un bug
Vous pouvez essayer avec une variable locale pour stocker de nouvelles valeurs et revenir à l'ancienne valeurs lorsque l'utilisateur clique sur Annuler (comme indiqué dans ma réponse).
Avez-vous essayé la solution que j'ai fournie?
Désolé mais je n'ai pas essayé votre solution, et ça fait des années depuis que j'ai utilisé la dernière fois Kendo UI