Skip to main content
Category: Display · Reads data: yes · Sends commands: no

Mental model

A Dynamic Repeater is a mail merge. You define one template, and it stamps a copy for every item in your data — a list or grid that grows with the data.

When to use it

  • A card per device, per record, per reading
  • Any repeating layout driven by a dataset

Settings

General / Data

  • Widget Title / ID · the data source to repeat over

Style

  • Auto-generate template — build a template from the data shape
  • Columns — grid width
  • Container / button / divider colors
  • Empty text · error text — placeholder states

Script API example

The same interactions from a dashboard script:
widget.on('deviceCards', 'dataload', async () => {
  const rows = await db.query('devices', {}, { limit: 100 });
  widget.setText('countLabel', rows.length + ' devices');
});

Table

The same data as a grid of rows.