nooQGolf logo

Data Tables

Purpose

Data Tables are reusable tabular components. Build a table once with structured columns and conditional formatting, then drop it onto any page via the Data Table block.

When to use this

  • Fixture lists, fee schedules, opening hours, league standings — any tabular data that's longer than ~5 rows.
  • Anything you'd otherwise paste in from a spreadsheet.
  • Use Rich Text tables only for tiny 2-3 row tables. For anything larger, use a Data Table.

Key fields

  • Title — internal identifier; not shown on the public site unless you embed it in a heading.
  • Slug — used for the block reference.
  • Columns — array of column configs: header label, data type (text, number, date, link, image), default alignment.
  • Rows — array of row data, keyed by column.
  • Styling — table colours, borders, alternating row shading, sticky header.
  • CSV upload — paste or upload a CSV to populate Columns + Rows in one step.
  • URL import — fetch CSV from a public URL on a schedule. Useful for league standings or weather data.
  • Conditional formatting — Datadog-style rules: "if score < par then green background".

Common tasks

Build a fixture list

  1. Content > Data Tables, Create New.
  2. Define columns: Date, Home, Away, Time, Venue.
  3. Either enter rows manually or paste a CSV into the CSV input.
  4. Save. Then on a Page, add a Data Table block and pick this table.

Update from a CSV

  1. Open the existing table.
  2. Click Import from CSV, paste new data.
  3. The system tries to match columns by header name. Confirm and Save.

Schedule a URL refresh

  1. In the Data Table, set URL import.
  2. Pick a refresh interval (hourly, daily).
  3. The CSV at that URL is fetched on schedule and rows are replaced.

Gotchas

  • Headers must match across CSV imports to update rows in place — otherwise you'll get a fresh set.
  • URL import requires a publicly accessible CSV. Authenticated endpoints aren't supported.
  • Large tables (>500 rows) hurt page render time. Paginate by splitting into multiple tables or by using a search interface.
  • Conditional formatting rules are evaluated per cell, so complex per-row logic (e.g. "if this row's score < last row's score") isn't possible.

Related

Still need help? Open the chat assistant in the corner, or send us a message.