This page covers the per-row buttons in a Table, bulk actions over selected rows, how users select rows, and expandable sub rows.
Row Actions
Configure row actions under Inspector → Content → Row Actions. Each action is either visible (a button in the actions column) or an overflow entry (inside a per-row dots menu). Drag the action between the Visible Actions and Hidden in overflow groups to choose placement.




| Property | Type | Default | Description |
visibility | VISIBLE | OVERFLOW | VISIBLE | Button in the actions column, or entry in the per-row dots menu. Set by dragging between groups |
buttonType | "button" | "icon-button" | button | Visible actions only: text button or icon-only button |
label | string | — | Button text or menu entry text. Translatable |
appearance.icon | icon | Plus | Icon-button actions take one icon; text buttons take optional start/end icons |
appearance.disabled | condition | — | Disable the action per row based on the row's own values |
appearance.visibility | condition | — | Show or hide the action per row. Rows where every overflow action is hidden get no dots menu |
appearance.loading | condition | — | Show a spinner on the action per row |
permissions | permission rule | — | Restricts who sees the action |
Per-row Conditions
Every bindable property — label, icon, disabled, loading, visibility — is evaluated once per row with that row's data in scope. A disabled condition like {{ table1.context.currentRow.status }} === 'Closed' disables the button only on rows with that status.
Using the Clicked Row in the Handler
Inside a row action's On Click handler, the clicked row's data is available as:
{{ table1.context.currentRow }}— the clicked row's full data{{ table1.context.currentRowIndex }}— its position (0-indexed)
The click also selects the row: {{ table1.selectedRow }} and {{ table1.selectedRowKey }} are set before the handler runs, so anything on the page bound to the selection also updates.
The Actions Column
Select the actions column in the builder to configure it:
| Property | Default | Description |
| Show Floating | false | Show actions only on hover, floating over the row. Saves column space but invisible on touch devices |
| Gap | gap-0 | Space between action buttons |
| Column Width | auto | Fixed width; leave empty to size from the actions |
| Pin Column | right | Keeps the actions column visible during horizontal scroll. Set to left to move actions to the left side |
Warning: Floating actions are invisible on touch devices. With Show Floating on, actions appear only on pointer hover — users on touch screens have no hover. Use non-floating actions or an overflow menu when the table must work on touch.
Bulk Actions
Bulk actions use the same configuration as row actions but appear only when rows are selected, replacing the toolbar. Configure them under Inspector → Content → Bulk Actions.
The user selects one or more rows (bulk actions require Row Selection = Multiple).
The toolbar is replaced by a bulk-actions bar showing the selected-row count, your bulk action buttons, and a clear-selection control.
An action's On Click handler runs with the full selection available, e.g.
{{ table1.selectedRows }}.Clearing the selection brings the normal toolbar back.
Warning: Bulk actions lock selection to Multiple. While any bulk action is configured, Single and None are disabled in the inspector. Remove the bulk actions first if you need Single or None selection.
Warning: Selection does not clear after a bulk action. Running a bulk action leaves rows selected. If the action deleted them, they linger in {{ table1.selectedRows }} with stale data. Always end destructive handlers with the table's clearRowSelection method.
Row Selection
Configure row selection under Inspector → Content → Row Selection.
Mode | Value | What users get |
|---|---|---|
None | NONE | No selection at all. Also how a table behaves when Row Selection is cleared |
Single | SINGLE (new tables start here) | Clicking a row selects it; clicking again deselects. Optional radio column |
Multiple | MULTI | A checkbox column with a header select-all checkbox |
What Selection Exposes
| Binding | Type | Mode | Description |
{{ id.selectedRow }} | object | Single | The selected row's full data |
{{ id.selectedRowKey }} | string | Single | The selected row's primary key |
{{ id.selectedRows }} | array | Multiple | Full data of every selected row |
{{ id.selectedRowKeys }} | array | Multiple | Primary keys of every selected row |
Selection Events and Methods
| Event / Method | Available when | What it does |
| On Select Row (event) | Always | Fires when a row is selected |
| On Change Row Selection (event) | Multiple only | Fires when a checkbox is toggled |
selectRow(rowId) | Single only | Selects the row with the given primary key |
selectRows(rowIds) | Multiple only | Selects the rows with the given keys |
selectAllRows() | Multiple only | Selects every row on the current page (not the whole dataset) |
clearRowSelection() | Always | Clears the current selection |
Note: Selection methods do nothing while the table is hidden. If you call selectRows while the table is behind an inactive tab or inside a closed drawer, the call silently does nothing and is not queued. Run selection methods only after the table is visible.
Disabling Selection for Specific Rows
With Multiple selection, a condition field appears under the selection toggle. Rows matching it get a disabled checkbox that the select-all also skips. The condition is evaluated per row with that row's values in scope. This disable condition is only available with Multiple mode — Single has no equivalent.
Expandable Sub Rows
Add the Sub Rows add-on to nest child rows under parents. Children render with the same columns as their parent, indented by depth, and nesting can go multiple levels. Configure under Inspector → Content → Add-ons → Sub Rows.
Property | Default | Description |
|---|---|---|
Children Key | — | The row field that contains the nested rows |
Expandable Flag (optional) | — | A field that decides whether a row shows the expand chevron. Overrides the "chevron when children exist" default |
Expand Control | Own Column | Whether the chevron gets a dedicated column or sits inside the first column's cell |
Expand by default | Off | Every row is expanded when the table first renders |
Note: Rows start collapsed unless Expand by default is on. The expandAllRows and collapseAllRows methods are still available. There is no event that fires on expand or collapse.
Warning: Sub Rows and Detail Panel are mutually exclusive. You can use one or the other per table, not both.
Related Pages
Page | Relationship |
|---|---|
Full events, methods and exposed state | |
Bulk actions replace the toolbar while rows are selected | |
How edits interact with row selection and the changeset |