Frappe Framework
Déclencher un événement à la suppression d’une ligne de grille
Le clic sur supprimer une ligne de grille déclenche fieldname_remove sur le DocType enfant. L’ajout, le déplacement et l’avant-suppression ont leur événement.
À quoi sert l’événement
Pour réagir quand l’utilisateur supprime une ligne d’une table enfant (Child Table), ajoutez un gestionnaire fieldname_remove. fieldname est le nom du champ table dans le document parent.
Exemple
Le parent Article (Item) a un champ table color, lié au DocType enfant Item Color. Le gestionnaire se pose sur le DocType enfant :
frappe.ui.form.on("Item Color", {
color_remove: function (frm) {
// frm.doc.color contient la liste des couleurs restantes
},
});Le même principe vaut pour l’ajout, quand l’utilisateur clique sur ajouter une ligne : l’événement est color_add. Le second extrait publié répète d’abord color_remove, puis ajoute color_add.
Le traitement se fait sur frappe.ui.form.on du DocType enfant, pas sur le DocType parent. Le parent peut garder ses propres gestionnaires à part.
Gestionnaires
fieldname_addfieldname_movefieldname_before_removefieldname_remove
Point d’attention
Après la suppression, frm.doc.color reflète la liste restante, d’après le commentaire de la source. Le nom de l’événement reprend le nom du champ parent (color), pas le nom du DocType enfant.
