Unify Applications
Logo
Row Actions & Selection

Row Actions & Selection

Logo

7 mins READ

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.

table_overview.png
table_overview.png

row_actions.png
row_actions.png

PropertyTypeDefaultDescription
visibilityVISIBLE | OVERFLOWVISIBLEButton in the actions column, or entry in the per-row dots menu. Set by dragging between groups
buttonType"button" | "icon-button"buttonVisible actions only: text button or icon-only button
labelstring—Button text or menu entry text. Translatable
appearance.iconiconPlusIcon-button actions take one icon; text buttons take optional start/end icons
appearance.disabledcondition—Disable the action per row based on the row's own values
appearance.visibilitycondition—Show or hide the action per row. Rows where every overflow action is hidden get no dots menu
appearance.loadingcondition—Show a spinner on the action per row
permissionspermission 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:

PropertyDefaultDescription
Show FloatingfalseShow actions only on hover, floating over the row. Saves column space but invisible on touch devices
Gapgap-0Space between action buttons
Column WidthautoFixed width; leave empty to size from the actions
Pin ColumnrightKeeps 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.

  1. The user selects one or more rows (bulk actions require Row Selection = Multiple).

  2. The toolbar is replaced by a bulk-actions bar showing the selected-row count, your bulk action buttons, and a clear-selection control.

  3. An action's On Click handler runs with the full selection available, e.g. {{ table1.selectedRows }}.

  4. 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

BindingTypeModeDescription
{{ id.selectedRow }}objectSingleThe selected row's full data
{{ id.selectedRowKey }}stringSingleThe selected row's primary key
{{ id.selectedRows }}arrayMultipleFull data of every selected row
{{ id.selectedRowKeys }}arrayMultiplePrimary keys of every selected row

Selection Events and Methods

Event / MethodAvailable whenWhat it does
On Select Row (event)AlwaysFires when a row is selected
On Change Row Selection (event)Multiple onlyFires when a checkbox is toggled
selectRow(rowId)Single onlySelects the row with the given primary key
selectRows(rowIds)Multiple onlySelects the rows with the given keys
selectAllRows()Multiple onlySelects every row on the current page (not the whole dataset)
clearRowSelection()AlwaysClears 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.

Page

Relationship

Table Overview

Full events, methods and exposed state

Toolbar & Views

Bulk actions replace the toolbar while rows are selected

Inline Editing & Changesets

How edits interact with row selection and the changeset

FAQs

How do I run a delete action only on the row the user clicked, not on all selected rows?

Use a row action (not a bulk action). In its On Click handler, bind the delete call's input to {{ table1.context.currentRow.id }} — this always refers to the exact row whose action button was clicked. After the delete, call refetchData to reload the grid. Row actions are scoped to their own row; bulk actions operate on all selected rows.

I set selection to Single but nothing visible happens when I click a row. Why?

With Show Selection Radio turned off, Single mode shows no selection column at all. The click still sets {{ table1.selectedRow }}, but there is no visual feedback on the table itself. Turn on Show Selection Radio (Inspector → Content → Row Selection) to make the selection visible.

Select All only selected 30 rows, but I have 200 records. Why?

The header select-all and the selectAllRows method select the rows currently loaded on the current page — with paginated data, unfetched rows on other pages are not selected. If you need to act on all 200 records, either load them all on one page or run your action server-side using only the filter criteria rather than the selected keys.

After my bulk delete, the deleted rows are still showing in selectedRows. Why?

Selection survives a bulk action and rows that left the data keep the values captured at selection time. You must explicitly call clearRowSelection at the end of your bulk action handler to reset the selection and remove stale values.

Can I show sub rows only for some parent rows?

Yes — set an Expandable Flag field in the Sub Rows add-on. The chevron only appears on rows where that field is truthy. Rows flagged as expandable show a chevron even if their children field is empty; rows flagged off hide the chevron even if they have children. Without the flag, the chevron appears whenever the children field is a non-empty list.