Skip to main content

Grid widget

Grids can be used to show your data in a tabular way, with pagination and sorting. For each grid, you can define:

  • which conditions will determine the records to be displayed;
  • which columns will be displayed in the grid;
  • which links will be available for each record, pointing to other pages where users can display or edit records;
  • which actions will be available for batch tasks.

How to create a grid widget​

  1. Drag a grid widget into a page.
  2. Use the dropdown menu to select which object you want to display in the grid.
  3. Configure the grid widget by selecting the fields you want to show as columns.

Title and subtitle​

Like other widgets, you can optionally set a title and a subtitle that will be displayed above your grid.

Example

Appearance settings​

The following options can be set to customize the appearance of the grid:

  • Visibility determines whether you want the table to be hidden in case no records match the configured conditions.
  • Filtering determines whether you want to let users filter the records on the fly according to one or multiple fields (see User filters below).
  • Search determines whether you want to show a search box.
  • Export determines whether you want to show a button to export data in CSV or Excel format.
  • Reload — show a Reload button so users can refresh the grid contents without reloading the whole page (useful on busy ops screens).
  • Pagination — place pager controls above the rows, below the rows, or above and below (useful on long tables).
  • Width (widget title tab) — how much horizontal space the grid uses on the page (100%, 75%, 50%, 33%, …), so it can sit beside other widgets.
Example

User filters​

When filtering is enabled, operators narrow the grid themselves — “only open tickets”, “between these dates”, “any of these statuses” — without asking you for a new saved view. That cuts back-and-forth and keeps one grid useful for many jobs.

You can control which fields appear as filters:

  • do not allow user filtering;
  • allow filtering on all object fields;
  • allow filtering only on fields used as columns;
  • allow filtering on a specific allowlist of fields.

For each filterable field you can set a custom Label, choose Hide from user filter when a column should stay visible but not filterable, and for Reference fields configure Display field / Sort by. When you use a specific allowlist of fields, drag to reorder them — that order is used in the filter UI.

Filter style chooses how filters appear:

  • Minimal (add and remove) — compact chips; operators add filters as needed (default)
  • Panel (static) — a fixed filter panel. With an allowlist, mark fields as advanced so they sit in a collapsed section; otherwise the first eight filterable fields are primary and the rest go under Advanced. Fields that currently have a value are highlighted so active filters are easy to spot.

For a Date or Date and Time field, enable Show as calendar to replace the usual filter chip with a month calendar above the filters. Operators click a day or drag a range; the grid filters to that day (is) or range (is between). Days that still have matching records (given the other active filters) are highlighted. Only one calendar field is active per widget — turning it on for another date field turns it off on the previous one. The calendar field does not appear under Add filter to prevent confusion.

When filtering is on, you can also set Default filters. Those rules are applied the first time the page loads (for example Status is Open, or Owner is the logged-in user). Visitors can still change or clear them; they are a starting point, not a replacement for the widget’s own conditions. Only fields that are actually filterable on the widget are used.

Live pages accept query-string user filters on filterable widgets (grids, charts, pivots, timelines, and similar). Use object field refs (not API variable names):

  • Unscoped — apply on every widget on the page where the field is user-filterable: /orders?status=open, /orders?age:gt=18&age:lt=65, /orders?name:contains=acme
  • Widget-scoped — only one widget: /orders?<viewId>.status=open

Allowed op suffixes include gt, lt, contains, is_before, is_after, is_today (a bare ?field=value means equals / is). Multiple params are AND-combined. URL filters seed the chip/panel UI on first paint and take precedence over default filters and saved prefs; after that, further interaction stays chip-driven.

Detail / KPI placements and pivot measure cells can emit the same URLs when configured in the Builder.

Remembered filters​

For logged-in users, the browser remembers the last filters, search text, and column sort for that grid (per user and page) in local storage. Prefs are restored on Back/Forward and Reload, and when navigating back from a same-origin child or descendant of the list (for example detail under the list). They are not restored when arriving from an unrelated page (home/dashboard menu) or with no usable referrer (typed URL, bookmark). URL-seeded filters still win when present.

The same Default filters and filter-style settings are available on other widgets that support user filtering (charts, pivots, Custom View, and similar).

Live filter operators include is / is not, is any of, is between, contains / does not contain, and the usual blank and date variants. For Reference Array fields, contains / does not contain let operators filter rows that include (or exclude) a chosen linked record. Date/time filters use a date/time picker where appropriate.

Columns​

In a grid, you can use any number of columns according to what data you want to display. Column titles and order can be customized.

For Reference and Reference Array columns, configure which Display field to show for linked records, and whether array values appear as Badges or Bullet points.

For Long Text columns (and similar multi-line text), set Truncate after n characters so long values show a shortened preview with a control to expand the full text.

For File columns, Open as controls how the file opens when the user clicks it:

  • Same-tab link — download / open in the same tab (default)
  • PDF preview (modal) — open PDFs in a dialog over the page
  • PDF preview (side pane) — open PDFs in a side panel

Non-PDF files still download when a preview mode is selected.

Bulk download of files​

For a File column, open the column settings and enable Enable bulk download. The grid then shows a Download All (column title) link that packs every file from the matching rows (current filters applied, all pages) into a single ZIP download.

Use this when operators need to collect attachments from many records at once — for example all contracts in a filtered list, or every uploaded document for a batch of applications.

Linking to other pages​

If you want to use one or more columns as links to other pages, you can optionally configure the link that the values will point to. This is useful if you want to provide a way for users to display or edit records. Unless you select a page that already exists, a new sub-page is automatically created for you when you configure the link.

Example

Display rules​

Display rules allow you to change the appearance of the grid dynamically according to record data — for example colour overdue rows or hide sensitive cells.

Example

Available actions for display rules include:

  • Set color: sets the text colour of a cell or of the entire row if the configured condition is true (UI label: Set color).
  • Set background color: sets the background colour of a cell or of the entire row if the configured condition is true.
  • Hide: hides the value of a cell if the configured condition is true.
  • Disable tasks: prevents the selection checkbox from being displayed for this record, thus preventing any batch task from being run on it (this only applies if tasks are configured for this grid).
  • Preselect Checkbox: marks the task checkbox for this row as selected by default when the condition matches — useful when most rows should be included in a batch action unless the user deselects them.

Tasks​

Tasks allow users to perform batch operations on multiple records at once. For instance, you can use a task to send an e-mail to multiple customers, or to change record data. Checkboxes appear on grid rows so users can select the records they want to run the task on. When rows are selected, each task button label appends the selection count (for example Approve (3)).

Place buttons at the top, bottom, or top and bottom of the grid — useful on long tables so operators do not scroll to find actions.

Optionally set Show message on a grid task to display a short confirmation after the task finishes (leave blank for none).

Batch tasks run asynchronously in the background with a progress indicator, so large selections stay responsive. When the job finishes, the grid applies the task’s follow-up (redirect and/or message) as usual.

Example

Read more about this in the section about tasks.