Skip to content

Start here

Simple Table

Lightweight paged table for small lists. For sorting, filtering and citations use Data Table.

Lightweight paged table for small lists. For sorting, filtering and citations use Data Table.

Add it to an app

  1. Open the app builder and find Simple Table in the component palette.
  2. Insert it into the intended region or container.
  3. Set its properties in the inspector. Use a literal for a fixed value or a binding for a value supplied by the app.
  4. Connect its events where the app should respond to a user gesture.
  5. Preview with representative data and save after resolving validation problems.

The type name in the builder’s code view is table.

Settings

SettingAccepted valueRequiredDefaultWhat it controls
Columns (columns)list of objectNoNot specifiedSupports expression bindings. Header set; omitted = the first row's keys.
key (columns[].key)stringNoNot specified—
label (columns[].label)stringNoNot specified—
Data (data)list of objectNo[]Supports expression bindings. Row objects; non-object entries are skipped. The listed default is inserted when adding a new component.
Page size (pageSize)integer; minimum 1No10Supports expression bindings. The listed default is inserted when adding a new component.

Values available to bindings

ValueTypeInitial valueMeaning
selectedRowobject or nullnullThe activated row.
selectedRowIndexinteger or nullnullThe activated row's index in data.

Refer to these values through components.<component-id>.<value> in a binding. Use the identifier assigned to this instance of Simple Table, not the component type name.

Events

  • onRowSelect — A row was activated (click, Enter or Space).

Connect only the actions the app needs. An event can fetch results, run an enabled data source, set state, update another component, show a notification, or navigate where supported.

Keyboard and accessible labels

Accessible label source: Data table.

  • Enter/Space on a row selects it

Example: Bound rows with explicit columns

SettingExample value
columns[{"key":"group","label":"Region"},{"key":"sum","label":"Total sales"}]
data"{{ dataSources.metrics.data }}"

Example: Longer pages, a row click opens the detail pane

SettingExample value
data"{{ dataSources.orders.data }}"
pageSize25

When onRowSelect occurs, the example performs:

  • setStateValue with {"key":"detailOpen","value":true}

If it is empty or unavailable

Check the source binding, the selected item, and the app’s access. A hosted document, table, review, or storage component needs the corresponding app capability; an offline preview cannot supply live private data. A source running with no results is different from an invalid binding. Inspect the app’s workflow and data source before changing the presentation.