La répétition
Tout bloc qui inclut le fragment repeat peut être rendu N fois, une fois par élément d'une collection. C'est le « for each » de la page, et il se règle sur le conteneur, pas sur les enfants.
| Propriété | Rôle |
|---|---|
vb_Repeat | Active la répétition. Fait réafficher les quatre suivantes |
vt_RepeatFunctionToExecute | L'expression 4D qui produit la collection |
vt_RepeatKeyname | Le nom sous lequel chaque élément est exposé |
vt_RepeatIdIteration | L'id donné à chaque itération (expression 4D acceptée) |
vb_noRepeatInDev | Voir la mise en garde ci-dessous |
vb_noRepeatInDev est un faux ami
Son nom dit « pas de répétition en dev ». Son comportement est l'inverse : vrai signifie que la répétition EST rendue en dev. La négation a lieu dans GG_PROCESS_COMPONENTS ; c'est pourquoi le libellé du panneau indique « répéter en dev » alors que la propriété garde son nom hérité.
Piège : fiez-vous au libellé, pas au nom. Le schéma lui-même signale ce cas.
Les id doivent être uniques à chaque itération
vt_RepeatIdIteration existe parce que répéter un bloc répète aussi ses id. Deux éléments portant le même id dans une page, c'est ainsi qu'un clic finit par agir sur la première itération, quel que soit l'endroit cliqué. Construisez l'id à partir de l'élément. Et si vous générez du JavaScript dans un bloc répété, enveloppez-le dans une IIFE et retrouvez les éléments par un id suffixé de l'uuid de l'élément, jamais par un id nu.
Voir aussi
- Conteneur : le porteur habituel de la répétition
- La listbox : pour des données tabulaires, une listbox est presque toujours la meilleure réponse

