Repeat

Any block that includes the repeat fragment can be rendered N times, once per item of a collection. It is the "for each" of the page, and it lives on the wrapper, not on the children.

PropertyRole
vb_RepeatTurns it on. Re-renders the four below
vt_RepeatFunctionToExecuteThe 4D expression producing the collection
vt_RepeatKeynameThe name each item is exposed under
vt_RepeatIdIterationThe id given to each iteration (4D expression allowed)
vb_noRepeatInDevSee the warning below

vb_noRepeatInDev is a false friend

Its name says "no repeat in dev". Its behaviour is the opposite: true means the repeat IS rendered in dev. The negation happens in GG_PROCESS_COMPONENTS, which is why the panel's label reads "do repeat in dev" while the property keeps its inherited name.

Trap: read the label, not the name. The schema itself flags this one.

Ids must be unique per iteration

vt_RepeatIdIteration exists because repeating a block repeats its ids too. Two elements with the same id in a page is how a click ends up acting on the first iteration whatever you clicked. Build the id from the item. And if you generate JavaScript inside a repeated block, wrap it in an IIFE and resolve elements by an id suffixed with the item's uuid, never by a bare id.

See also

  • Wrapper: the usual carrier
  • The listbox: for tabular data, a listbox is almost always the better answer