Ce post pour parler d'un cas pratique plutôt intéressant mettant en oeuvre XMLC_Pivot, les champs de formulaire de type checkbox et l' XMLInstruction Match.
J'ai une page qui présente une liste de lignes. Sur chaque ligne, on trouve une case à cocher, un champ de saisie, et une combo (disons que globalement, chaque ligne comprend plusieurs éléments de formulaires).
Afin de poster l'intégralité de ces lignes via un formulaire, j'ai ajouté un pivot XMLC_Pivot = nom de mon pivot.
Dans le XMLService invoqué par le formulaire en question, j'ai ajouté une XMLInstruction Match. Cette instruction va matcher le pivot tout en alimentant le context pour chaque item rencontré.
Imaginez que sur la première ligne, la checkbox était cochée avec value = 1.
A ce stade, le context va contenir la valeur 1 pour le nom de la checkbox.
L'instruction match passe à la ligne (item) suivante. Admettons que sur cette ligne, la checkbox n'était pas cochée. He bien dans ce cas particulier, le formulaire ne transmet pas ni le nom ni la valeur de la checkox.
Ce qui fait que notre instruction match, ne rencontrant pas d'élément correspondant au nom de la checkbox, ne renseigne rien à son sujet dans le context.
Ainsi le context contient toujours la valeur de la ligne précédente (cochée= 1)... alors qu'en réalité, c'est l'inverse ! Capito ?
Une solution possible pour rémédier à ce cas :
Implémenter un gestionnaire Match.BeforeInternalInstruction (ou After) et coderSi vous avez des remarques ou rencontré des situations similaires... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Context.SetValue("CHECKBOXNAME", "");
Partager