Skip to main content

Table components

This article describes components in Components Library > Table.

EditTable

The EditTable component displays a data table that supports inline row editing, adding new rows, and deleting rows. It supports configurable columns, action buttons, and pagination. In the App Designer, select an EditTable on the canvas to configure it through four tab pages in the Settings panel: Props, Styles, Events, and Advanced.

Props

The Props tab contains the visual and behavioural properties of the EditTable. The table is organised into collapsible sections.

If a property displays the Variable Binding icon Variable Binding, that means it supports variable binding.

PropertyUI ControlDefaultDescription
Data columnArray setter-Defines the columns displayed in the table. Expand to add, remove, or configure columns. Refer to Data column.
Sort icons descIcon setterdescendingSets a custom icon for the descending sort state.
Sort icons ascIcon setterascendingSets a custom icon for the ascending sort state.
Action column buttonsSwitch Setter (Object setter / Variable input)-Configures the buttons in the row-level action column. Refer to Action column buttons.
Action columnSwitch Setter (Object setter / Variable input)-Configures the layout and behaviour of the action column. Refer to Action column.
Action bar buttonSwitch Setter (Object setter / Variable input)-Configures the toolbar buttons displayed above the table. Refer to Action bar button.
DatasourceJSON setterSee code sampleSets the table data.
Pagination configurationSwitch Setter (Object setter / Variable input)-Configures the pagination controls. Refer to Pagination configuration.

Datasource default code sample

[{
"id": "id-2f5DdE2b-0",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
}, {
"id": "id-2f5DdE2b-1",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
}, {
"id": "id-2f5DdE2b-2",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
}, {
"id": "id-2f5DdE2b-3",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
}, {
"id": "id-2f5DdE2b-4",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
}]

Data column

The Data column section manages the list of table columns. Each column entry supports the following properties:

PropertyUI ControlDefaultDescription
Titlei18n setter-Sets the column header text. Required. Supports internationalisation.
Data typeDropdown (Text | Number | Money | Date | Mobile phone number | Currency | Select | Percentage | Progress bar | Link | Pop-up notification | Label | None)TextSpecifies how the column data is formatted and displayed. Required.
Select datasourceExpression input-Sets the datasource for selectable options. Visible only when Data type is Select.
Default valueText input-Sets the default selected value. Visible only when Data type is Select.
WidthNumber input-Sets the column width in pixels.
Label colorDropdown (Blue | Green | Orange | Red | Turquoise | Yellow)-Sets the tag label color. Visible only when Data type is Label.
Data fieldText inputdataIndexSpecifies the field name in the datasource that this column maps to.
AlignmentRadio group (Left | Center | Right)-Sets the horizontal alignment of cell content.
Column freezeRadio group (Left | None | Right)NoneFreezes the column so it remains visible when scrolling horizontally.
Time formatDropdown (Yyyy mm dd hh:mm:ss | Yyyy mm dd hh:mm | Yyyy mm dd | Yyyy mm | Yyyy)-Sets the date display format. Visible only when Data type is Date.
Tooltip descriptioni18n setter-Sets a tooltip shown on the column header. Supports internationalisation.
Allow sortingToggle switchOffEnables ascending and descending sorting on this column.
Allow searchingToggle switchOffToggles the visibility of a search box for this column.
CellFunction Binding-Binds a custom function to render the cell content.
RenderToggle switch + Function BindingOnWhen enabled, binds a custom render function with parameters (value,index,record) to control how the cell is displayed.
Advanced settingsBehaviour setter-Configures click behaviour for the column. Visible only when Data type is Link or Pop-up notification. Contains the following sub-properties:
PropertyUI ControlDefaultDescription
EventDropdownonCellClickSets the event that triggers the configured behaviour.
TypeRadio group (Dialog | Link)LinkDetermines the action type.
TargetRadio group (Same window | New window)Same windowSets whether the link opens in the same window or a new window.
Target typeRadio group (Internal page | URL)Internal pageSets whether the destination is an internal page or an external URL.
DestinationText input-Sets the destination URL.
Advanced settings when Data type is Pop-up notification
PropertyUI ControlDefaultDescription
EventDropdownonCellClickSets the event that triggers the configured behaviour.
TypeRadio group (Dialog | Link)DialogDetermines the action type.
Bind popupDropdown-Binds a pop-up window to display when the cell is clicked.

Action column buttons

The Action column buttons section is an array editor that configures the row-level action buttons. It has the following top-level properties:

PropertyUI ControlDefaultDescription
Text modeToggle switchOnDisplays action buttons as text links rather than icon buttons.
Button visibilityNumber input3Sets the maximum number of action buttons shown before additional buttons are collapsed into a menu.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button. Each item has:

PropertyUI ControlDefaultDescription
Texti18n setterAuto-generatedSets the display text of the action button. Supports internationalisation.
TypeDropdown (Normal | Primary | Secondary)NormalSets the button style type.
DisabledToggle switchOffWhen enabled, prevents user interaction with the button.
HiddenToggle switchOffWhen enabled, hides the button from the action column.
Click eventFunction Binding-Binds a function to be called when the button is clicked.
FilterFunction Binding-Binds a function to conditionally control the visibility of the button per row.

Action column

The Action column section configures the action column layout:

PropertyUI ControlDefaultDescription
Titlei18n setterOperationSets the header text of the action column. Supports internationalisation.
WidthNumber input-Sets the width of the action column in pixels.
Column freezeRadio group (Left | None | Right)-Freezes the action column when scrolling horizontally.

Action bar button

The Action bar button section is an array editor that configures the toolbar buttons above the table. It has the following top-level properties:

PropertyUI ControlDefaultDescription
Text modeToggle switchOffDisplays toolbar buttons as text links rather than icon buttons.
Button visibilityNumber input3Sets the maximum number of toolbar buttons shown before additional buttons are collapsed.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button. Each item has:

PropertyUI ControlDefaultDescription
Texti18n setterAuto-generatedSets the display text of the toolbar button. Supports internationalisation.
TypeDropdown (Normal | Primary | Secondary)PrimarySets the button style type.
DisabledToggle switchOffWhen enabled, prevents user interaction with the button.
HiddenToggle switchOffWhen enabled, hides the button from the toolbar.
Click eventFunction Binding-Binds a function to be called when the button is clicked.

Datasource

The Datasource section configures the data displayed in the table.

PropertyUI ControlDefaultDescription
DatasourceJSON setterSee code sampleSets the data array to display. Each array item represents a row.

Datasource default code sample

[{
"id": "id-2f5DdE2b-0",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
},
{
"id": "id-2f5DdE2b-1",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
},
{
"id": "id-2f5DdE2b-2",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
},
{
"id": "id-2f5DdE2b-3",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
},
{
"id": "id-2f5DdE2b-4",
"date": "2013-06-12",
"percent": 1.862,
"documentAmount": 2022,
"currency": "CNY",
"company": "Ecquaria Technology Co., Ltd"
}]

Pagination configuration

The Pagination configuration section configures the table's pagination:

PropertyUI ControlDefaultDescription
Show paginationToggle switchOnControls whether the pagination bar is displayed.
TypeRadio group (Normal | Simple | Mini)NormalSpecifies the pagination style.
Navigation button styleDropdown (Normal | Arrow-only | Arrow-prev-only | No-border)Arrow-onlyDefines the style of the previous and next navigation buttons.
SizeRadio group (Small | Medium | Large)MediumControls the visual size of the pagination bar.
Total recordsNumber input100Sets the total number of records in the dataset.
Current pageNumber input1Sets the currently displayed page number.
Page sizeSelect / Number input20Specifies the number of rows displayed per page.
Selector typeRadio group (None | Filter | Dropdown)NoneSets the type of page size selector control.
Page size listText input5,10,20Specifies the comma-separated list of available page size options (for example, 5,10,20).
Page size alignmentRadio group (Start | End)EndSpecifies the position of the page size selector.
Single page hideToggle switchOffHides the pagination bar when only one page of data is available.
Show jumpToggle switchOnShows a Go to Page input field in the pagination bar.
Jump linkText input-Sets a URL template for page number buttons, using {page} as a placeholder.
OnChangeFunction Binding-Customises the callback function triggered when the page number changes.
OnPageSizeChangeFunction Binding-Customises the callback function triggered when the page size changes.

Advanced (Props sub-section)

Within the Props tab, an Advanced collapsible section provides:

PropertyUI ControlDefaultDescription
New row positionRadio group (Top | Bottom)-Specifies where new rows are inserted in the table when added.
Selection modeRadio group (None | Multiple row | Single row)NoneConfigures row selection behaviour.
Show row numberToggle switchOffDisplays a row number column on the left side of the table.
Enable settings buttonToggle switchOnShows a settings button in the table toolbar for column visibility control.
Empty value contenti18n setter-Sets the text displayed in cells that have no data. Supports internationalisation.
Table After Labeli18n setter-Sets a label displayed after the table. Supports internationalisation.
Max rowsNumber input-Sets the maximum number of rows allowed in the table.
Min rowsNumber input-Sets the minimum number of rows required in the table.
IDText inputAuto-generatedUnique HTML identifier for the element. Auto-generated from the component title (non-alphanumeric characters are replaced by underscores). You can override this value manually.
NameText inputAuto-generatedHTML name attribute for form identification. Auto-generated from the component title. You can override this value manually.

Global style (Props sub-section)

Within the Props tab, a Global style collapsible section provides:

PropertyUI ControlDefaultDescription
Show borderToggle switchOffDisplays borders around table cells and the table container.
Alternate row colorToggle switchOffApplies alternating background colors to odd and even rows.
Fixed headerToggle switchOffKeeps the table header fixed at the top when scrolling vertically.
Max body heightNumber input-Sets the maximum height of the table body in pixels. Visible only when Fixed header is enabled.
SpacingRadio group (Compact | Normal)NormalControls the row height and cell padding of the table.
Responsive table typeRadio group (Default | Collapse Row)DefaultSets the responsive layout behaviour on small screens.
Responsive breakpoint (px)Number input500Sets the screen width in pixels at which the responsive layout activates. Visible only when Responsive table type is Collapse Row.

Styles

For more information, refer to Styles.

Events

The Events tab allows you to bind event handlers to the EditTable without writing boilerplate code.

Binding an event

  1. Click "Component native event" to select from the EditTable's supported events:

    • onSave — Triggered when a row edit is saved
    • onRemove — Triggered when a row is deleted
    • onSort — Triggered when the sort order changes
    • onSearch — Triggered when a column search is performed
  2. The Event Binding window opens, allowing you to select an event and apply parameter settings.

  3. After selecting an event, it appears in the Existing event table.

    You can click the gear icon to edit the action, or click the trash bin icon to delete the binding.

Handler signatures

The onSave handler is triggered when a row edit is saved:

onSave(row) {
// row: the saved row data object
}

The onRemove handler is triggered when a row is deleted:

onRemove(row) {
// row: the deleted row data object
}

The onSort handler is triggered when the sort order changes:

onSort(dataIndex, order) {
// dataIndex: the field being sorted
// order: 'asc' or 'desc'
}

The onSearch handler is triggered when a column search is performed:

onSearch(value, dataIndex) {
// value: the search input value
// dataIndex: the field being searched
}

Advanced

For more information, refer to Advanced.

ExpandTable

The ExpandTable component displays a parent-child table where each parent row can be expanded to reveal a nested child table. It supports configurable columns, action buttons, pagination, and row expansion state. In the App Designer, select an ExpandTable on the canvas to configure it through four tab pages in the Settings panel: Props, Styles, Events, and Advanced.

Props

The Props tab contains the visual and behavioural properties of the ExpandTable. The table is organised into collapsible sections.

If a property displays the Variable Binding icon Variable Binding, that means it supports variable binding.

PropertyUI ControlDefaultDescription
Data columnArray setter-Defines the columns displayed in the parent table. Expand to add, remove, or configure columns. Refer to Data column.
Sort icons descIcon setterdescendingSets a custom icon for the descending sort state.
Sort icons ascIcon setterascendingSets a custom icon for the ascending sort state.
Action column buttonsObject setter-Configures the buttons in the row-level action column. Refer to Action column buttons.
Action columnObject setter-Configures the layout and behaviour of the action column. Refer to Action column.
Action bar buttonObject setter-Configures the toolbar buttons displayed above the table. Refer to Action bar button.
DatasourceSwitch setter (Array setter / Expression input / Variable input)-Sets the table data including child table configuration per row. Refer to Datasource.
Pagination configurationObject setter-Configures the pagination controls. Refer to Pagination configuration.

Datasource

The Datasource section configures the data displayed in the table, including the child table configuration for each row. When you click the pencil icon on a datasource item, the item editor opens showing the row's field values and a ChildTable section.

Each datasource item displays fields that correspond to the columns defined in the Data column section (for example, company, documentAmount, currency, percent, date). These fields use text inputs and support variable binding.

Below the field values, a ChildTable section configures the nested child table displayed when the parent row is expanded. It contains the following sub-sections:

Sub-sectionDescription
Data columnDefines the columns displayed in the child table. Each column has a Title and Data type. The available data types are the same as the parent table's Data column.
Sort icons descSets a custom icon for the descending sort state in the child table.
Sort icons ascSets a custom icon for the ascending sort state in the child table.
Action column buttonsConfigures the row-level action buttons in the child table, including Text mode and Button visibility.
Action columnConfigures the child table's action column layout, including Title, Width, and Column freeze.
Action bar buttonConfigures toolbar buttons above the child table, including Text mode and Button visibility.
DataSourceSets the data array for the child table rows.
Pagination configurationConfigures pagination for the child table. The available properties are the same as the parent table's Pagination configuration.
AdvancedProvides advanced settings for the child table, including Show row number, Enable settings button, and Empty value content.
Global styleProvides global styling for the child table, including Show border, Alternate row color, and Fixed header.

Data column

The Data column section manages the list of table columns. Each column entry supports the following properties:

PropertyUI ControlDefaultDescription
Titlei18n setter-Sets the column header text. Required. Supports internationalisation.
Data typeDropdown (Text | Number | Money | Date | Mobile phone number | Currency | Select | Percentage | Progress bar | Link | Pop-up notification | Label)TextSpecifies how the column data is formatted and displayed. Required.
Select datasourceExpression input-Sets the datasource for selectable options. Visible only when Data type is Select.
Default valueText input-Sets the default selected value. Visible only when Data type is Select.
WidthNumber input-Sets the column width in pixels.
Label colorDropdown (Blue | Green | Orange | Red | Turquoise | Yellow)-Sets the tag label color. Visible only when Data type is Label.
Data fieldText inputdataIndexSpecifies the field name in the datasource that this column maps to.
AlignmentRadio group (Left | Center | Right)-Sets the horizontal alignment of cell content.
Column freezeRadio group (Left | None | Right)NoneFreezes the column so it remains visible when scrolling horizontally.
Time formatDropdown (Yyyy mm dd hh:mm:ss | Yyyy mm dd hh:mm | Yyyy mm dd | Yyyy mm | Yyyy)-Sets the date display format. Visible only when Data type is Date.
Tooltip descriptioni18n setter-Sets a tooltip shown on the column header. Supports internationalisation.
Allow sortingToggle switchOffEnables ascending and descending sorting on this column.
Allow searchingToggle switchOffToggles the visibility of a search box for this column.
Advanced settingsBehaviour setter-Configures click behaviour for the column. Visible only when Data type is Link or Pop-up notification. Contains the following sub-properties:
PropertyUI ControlDefaultDescription
EventDropdownonCellClickSets the event that triggers the configured behaviour.
TypeRadio group (Dialog | Link)LinkDetermines the action type.
TargetRadio group (Same window | New window)Same windowSets whether the link opens in the same window or a new window.
Target typeRadio group (Internal page | URL)Internal pageSets whether the destination is an internal page or an external URL.
DestinationText input-Sets the destination URL.
Advanced settings when Data type is Pop-up notification
PropertyUI ControlDefaultDescription
EventDropdownonCellClickSets the event that triggers the configured behaviour.
TypeRadio group (Dialog | Link)DialogDetermines the action type.
Bind popupDropdown-Binds a pop-up window to display when the cell is clicked.

Action column buttons

The Action column buttons section configures the row-level action buttons:

PropertyUI ControlDefaultDescription
Text modeToggle switchOnDisplays action buttons as text links rather than icon buttons.
Button visibilityNumber input3Sets the maximum number of action buttons shown before additional buttons are collapsed into a menu.

Each item in the Action column buttons array has the following properties:

PropertyUI ControlDefaultDescription
Texti18n setterAuto-generated (for example, check, edit, delete)Sets the display text of the action button. Supports internationalisation.
TypeDropdown (Normal | Primary | Secondary)PrimarySets the button style type.
DisabledToggle switchOffWhen enabled, prevents user interaction with the button.
HiddenToggle switchOffWhen enabled, hides the button from the action column.
Click eventFunction Binding-Binds a function to be called when the button is clicked.
FilterFunction Binding-Binds a function to conditionally control the visibility of the button per row.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button.

Action column

The Action column section configures the action column layout:

PropertyUI ControlDefaultDescription
Titlei18n setterOperationSets the header text of the action column. Supports internationalisation.
WidthNumber input-Sets the width of the action column in pixels.
Column freezeRadio group (Left | None | Right)-Freezes the action column when scrolling horizontally.

Action bar button

The Action bar button section configures the toolbar buttons above the table:

PropertyUI ControlDefaultDescription
Text modeToggle switchOffDisplays toolbar buttons as text links rather than icon buttons.
Button visibilityNumber input3Sets the maximum number of toolbar buttons shown before additional buttons are collapsed.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button. Each item has:

PropertyUI ControlDefaultDescription
Texti18n setterAuto-generatedSets the display text of the toolbar button. Supports internationalisation.
TypeDropdown (Normal | Primary | Secondary)PrimarySets the button style type.
DisabledToggle switchOffWhen enabled, prevents user interaction with the button.
HiddenToggle switchOffWhen enabled, hides the button from the toolbar.
Click eventFunction Binding-Binds a function to be called when the button is clicked.

Datasource

The Datasource section sets the data array for the child table rows. Each item in the array represents a row in the child table. When you click the pencil icon on a datasource item, the item editor opens showing the row's field values.

Each datasource item displays fields that correspond to the columns defined in the child table's Data column section (for example, company, documentAmount, currency, percent, date). These fields use text inputs and support variable binding.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a row, or use the grip icon to reorder rows. Click "Add an item +" to add a new data row.

Pagination configuration

The Pagination configuration section configures the table's pagination:

PropertyUI ControlDefaultDescription
Show paginationToggle switchOffControls whether the pagination bar is displayed.
TypeRadio group (Normal | Simple | Mini)NormalSpecifies the pagination style.
Navigation button styleDropdown (Normal | Arrow-only | Arrow-prev-only | No-border)Arrow-onlyDefines the style of the previous and next navigation buttons.
SizeRadio group (Small | Medium | Large)MediumControls the visual size of the pagination bar.
Total recordsNumber input100Sets the total number of records in the dataset.
Current pageNumber input1Sets the currently displayed page number.
Page sizeSelect / Number input20Specifies the number of rows displayed per page.
Selector typeRadio group (None | Filter | Dropdown)NoneSets the type of page size selector control.
Page size listText input5,10,20Specifies the comma-separated list of available page size options.
Page size alignmentRadio group (Start | End)EndSpecifies the position of the page size selector.
Single page hideToggle switchOffHides the pagination bar when only one page of data is available.
Show jumpToggle switchOnShows a Go to Page input field in the pagination bar.
Jump linkText input-Sets a URL template for page number buttons, using {page} as a placeholder.
OnChangeFunction Binding-Customises the callback function triggered when the page number changes.
OnPageSizeChangeFunction Binding-Customises the callback function triggered when the page size changes.

Expand (Props sub-section)

Within the Props tab, an Expand collapsible section provides:

PropertyUI ControlDefaultDescription
Open row keysArray setter-Specifies the primary keys of rows that are currently expanded. Used as a controlled state, typically in conjunction with the onRowOpen event.

Advanced (Props sub-section)

Within the Props tab, an Advanced collapsible section provides:

PropertyUI ControlDefaultDescription
Selection modeRadio group (None | Multiple row | Single row)NoneConfigures row selection behaviour.
Show row numberToggle switchOffDisplays a row number column on the left side of the table.
Enable settings buttonToggle switchOnShows a settings button in the table toolbar for column visibility control.
Empty value contenti18n setter-Sets the text displayed in cells that have no data. Supports internationalisation.
IDText inputAuto-generatedUnique HTML identifier for the element. Auto-generated from the component title (non-alphanumeric characters are replaced by underscores). You can override this value manually.
NameText inputAuto-generatedHTML name attribute for form identification. Auto-generated from the component title. You can override this value manually.

Global style (Props sub-section)

Within the Props tab, a Global style collapsible section provides:

PropertyUI ControlDefaultDescription
Show borderToggle switchOffDisplays borders around table cells and the table container.
Alternate row colorToggle switchOffApplies alternating background colors to odd and even rows.
Fixed headerToggle switchOffKeeps the table header fixed at the top when scrolling vertically.
Max body heightNumber input-Sets the maximum height of the table body in pixels. Visible only when Fixed header is enabled.
SpacingRadio group (Compact | Normal)NormalControls the row height and cell padding of the table.
Responsive table typeRadio group (Default | Collapse Row)DefaultSets the responsive layout behaviour on small screens.
Responsive breakpoint (px)Number input500Sets the screen width in pixels at which the responsive layout activates. Visible only when Responsive table type is Collapse Row.

Styles

For more information, refer to Styles.

Events

The Events tab allows you to bind event handlers to the ExpandTable without writing boilerplate code.

Binding an event

  1. Click "Component native event" to select from the ExpandTable's supported events:

    • onBodyScroll — Triggered when the user scrolls within the table body
    • onSearch — Triggered when a column search is performed
    • onSort — Triggered when the sort order changes
    • onRowOpen — Triggered when a parent row is expanded or collapsed
  2. The Event Binding window opens, allowing you to select an event and apply parameter settings.

  3. After selecting an event, it appears in the Existing event table.

    You can click the gear icon to edit the action, or click the trash bin icon to delete the binding.

Handler signatures

The onBodyScroll handler is triggered when the table body is scrolled:

onBodyScroll(e) {
// e: the scroll event object
}

The onSearch handler is triggered when a column search is performed:

onSearch(value, dataIndex) {
// value: the search input value
// dataIndex: the field being searched
}

The onSort handler is triggered when the sort order changes:

onSort(dataIndex, order) {
// dataIndex: the field being sorted
// order: 'asc' or 'desc'
}

The onRowOpen handler receives the currently expanded row keys, the key of the toggled row, a flag indicating whether the row was expanded or collapsed, and the data record of the toggled row:

onRowOpen(openRowKeys, currentRowKey, expanded, currentRecord) {
// openRowKeys: array of currently expanded row keys
// currentRowKey: the key of the row that was toggled
// expanded: true when expanding, false when collapsing
// currentRecord: the data object of the toggled row
}

Advanced

For more information, refer to Advanced.

FilterTable

The FilterTable component displays a query filter form that allows users to narrow down table data. It supports configurable filter fields, column layout, label alignment, and action buttons for search and reset. In the App Designer, select a FilterTable on the canvas to configure it through four tab pages in the Settings panel: Props, Styles, Events, and Advanced.

Props

The Props tab contains the visual and behavioural properties of the FilterTable. The table is organised into collapsible sections.

If a property displays the Variable Binding icon Variable Binding, that means it supports variable binding.

PropertyUI ControlDefaultDescription
Global configurationObject setter-Configures the overall layout and behaviour of the filter form. Refer to Global configuration.
Form itemArray setter-Defines the filter fields displayed in the form. Refer to Form item.
Action itemSwitch Setter (Array setter / Variable input)-Configures the action buttons in the filter form. Refer to Action item.
Action items configurationSwitch Setter (Object setter / Variable input)-Configures the visibility and position of the action buttons. Refer to Action items configuration.

Global configuration

The Global configuration section configures the overall layout and state of the filter form:

PropertyUI ControlDefaultDescription
Allow filteringToggle switchOffDetermines whether users can apply filters to the filter form.
StateRadio group (Read only | Editable)EditableSets whether the filter form fields are read-only or editable.
Column spanRadio group (One column | Two columns | Three columns | Four columns)-Sets the number of columns in the filter form grid layout.
AlignmentRadio group (Top | Left | Within)TopSpecifies how field labels are positioned relative to their input controls.
Title widthNumber input4Sets the column span for label width in the grid layout. Visible only when Alignment is Left.
Title offsetNumber input-Sets the horizontal offset for labels. Visible only when Alignment is Left.
Content widthNumber input-Sets the column span for input control width. Visible only when Alignment is Left.
Content offsetNumber input-Sets the horizontal offset for input controls. Visible only when Alignment is Left.
Text alignmentRadio group (Left | Right)-Sets the horizontal alignment of label text. Visible only when Alignment is Left.

Form item

The Form item section defines the filter fields displayed in the form. Each item in the array has the following properties:

PropertyUI ControlDefaultDescription
ComponentDropdownInputSets the type of input control for the filter field.
Labeli18n setterForm itemSets the label text for the filter field. Supports internationalisation.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a field, or use the grip icon to reorder fields. Click "Add an item +" to add a new filter field.

Action item

The Action item section configures the action buttons in the filter form. Each item in the array has the following properties:

PropertyUI ControlDefaultDescription
ActionDropdown (Submit | Ok | Cancel | Reset | Custom)OkSets the action performed when the button is clicked.
TypeDropdown (Normal | Primary | Secondary)NormalSets the button style type.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button.

Action items configuration

The Action items configuration section configures the Search and Reset button display:

PropertyUI ControlDefaultDescription
Button visibilityNumber input3Sets the number of action buttons that are visible before the remainder are collapsed (minimum 1, maximum 6).

Advanced (Props sub-section)

Within the Props tab, an Advanced collapsible section provides:

PropertyUI ControlDefaultDescription
IDText inputAuto-generatedUnique HTML identifier for the element. Auto-generated from the component title (non-alphanumeric characters are replaced by underscores). You can override this value manually.
NameText inputAuto-generatedHTML name attribute for form identification. Auto-generated from the component title. You can override this value manually.

Styles

For more information, refer to Styles.

Events

The Events tab allows you to bind event handlers to the FilterTable without writing boilerplate code.

Binding an event

  1. Click "Component native event" to select from the FilterTable's supported events:

    • onExpand — Triggered when the filter form is expanded or collapsed
    • onSearch — Triggered when the Search button is clicked
    • onReset — Triggered when the Reset button is clicked
  2. The Event Binding window opens, allowing you to select an event and apply parameter settings.

  3. After selecting an event, it appears in the Existing event table.

    You can click the gear icon to edit the action, or click the trash bin icon to delete the binding.

Handler signatures

The onExpand handler is triggered when the filter form is expanded or collapsed:

onExpand(expanded) {
// expanded: true when the form is expanded, false when collapsed
}

The onSearch handler is triggered when the Search button is clicked:

onSearch(values) {
// values: object containing the current filter field values
}

The onReset handler is triggered when the Reset button is clicked:

onReset() {
// called when the user clicks the Reset button
}

Advanced

For more information, refer to Advanced.

GroupTable

The GroupTable component displays a table with rows organised into labelled groups. Each group has a header label, an optional trailing label, and its own set of data rows. It supports configurable columns, action buttons, pagination, and row selection. In the App Designer, select a GroupTable on the canvas to configure it through four tab pages in the Settings panel: Props, Styles, Events, and Advanced.

Props

The Props tab contains the visual and behavioural properties of the GroupTable. The table is organised into collapsible sections.

If a property displays the Variable Binding icon Variable Binding, that means it supports variable binding.

PropertyUI ControlDefaultDescription
Data columnSwitch Setter (Array setter / Variable input)-Defines the columns displayed in the table. Expand to add, remove, or configure columns. Refer to Data column.
Sort icons descIcon setterdescendingSets a custom icon for the descending sort state.
Sort icons ascIcon setterascendingSets a custom icon for the ascending sort state.
Action column buttonsSwitch Setter (Object setter / Variable input)-Configures the buttons in the row-level action column. Refer to Action column buttons.
Action bar buttonSwitch Setter (Object setter / Variable input)-Configures the toolbar buttons displayed above the table. Refer to Action bar button.
Hide Setting ButtonsToggle switchOffHides the column settings button from the table toolbar.
Action columnSwitch Setter (Object setter / Variable input)-Configures the layout and behaviour of the action column. Refer to Action column.
Group contentSwitch Setter (Array setter / Variable input)-Defines the groups and their row data. Refer to Group content.
Empty value contentToggle switchOnEnables a custom message when the table has no data.
Empty contenti18n setterNo dataSets the message displayed when the table has no data. Visible only when Empty value content is enabled. Supports internationalisation.

Data column

The Data column section manages the list of table columns. Each column entry supports the following properties:

PropertyUI ControlDefaultDescription
Titlei18n setter-Sets the column header text. Required. Supports internationalisation.
Data typeDropdown (Text | Number | Money | Date | Mobile phone number | Currency | Select | Percentage | Progress bar | Link | Pop-up notification | Label | None)TextSpecifies how the column data is formatted and displayed. Required.
Time formatDropdown (Yyyy mm dd hh:mm:ss | Yyyy mm dd hh:mm | Yyyy mm dd | Yyyy mm | Yyyy)-Sets the display format for date values. Visible only when Data type is Date.
Select datasourceExpression input-Sets the datasource for selectable options. Visible only when Data type is Select.
Default valueText input-Sets the default selected value. Visible only when Data type is Select.
WidthNumber input-Sets the column width in pixels.
Label colourDropdown (Blue | Green | Orange | Red | Turquoise | Yellow)-Sets the tag label colour. Visible only when Data type is Label.
Data fieldText inputdataIndexSpecifies the field name in the datasource that this column maps to.
AlignmentRadio group (Left | Center | Right)-Sets the horizontal alignment of cell content.
Column freezeRadio group (Left | None | Right)NoneFreezes the column so it remains visible when scrolling horizontally.
Tooltip descriptioni18n setter-Sets a tooltip shown on the column header. Supports internationalisation.
Allow sortingToggle switchOffEnables ascending and descending sorting on this column.
Allow searchingToggle switchOffToggles the visibility of a search box for this column.
CellFunction Binding-Binds a custom function to render the cell content.
RenderToggle switch + Function BindingOnWhen enabled, binds a custom render function with parameters (value,index,record) to control how the cell is displayed.
PropertyUI ControlDefaultDescription
EventDropdownonCellClickSets the event that triggers the configured behaviour.
TypeRadio group (Dialog | Link)LinkDetermines the action type.
TargetRadio group (Same window | New window)Same windowSets whether the link opens in the same window or a new window.
Target typeRadio group (Internal page | URL)Internal pageSets whether the destination is an internal page or an external URL.
DestinationText input-Sets the destination URL.
Advanced settings when Data type is Pop-up notification
PropertyUI ControlDefaultDescription
EventDropdownonCellClickSets the event that triggers the configured behaviour.
TypeRadio group (Dialog | Link)DialogDetermines the action type.
Bind popupDropdown-Binds a pop-up window to display when the cell is clicked.

Action column buttons

The Action column buttons section configures the row-level action buttons:

PropertyUI ControlDefaultDescription
Text modeToggle switchOnDisplays action buttons as text links rather than icon buttons.
Button visibilityNumber input3Sets the maximum number of action buttons shown before additional buttons are collapsed into a menu.

Each item in the Action column buttons array has the following properties:

PropertyUI ControlDefaultDescription
Texti18n setteroperationSets the display text of the action button. Supports internationalisation.
TypeDropdown (Normal | Primary | Secondary)NormalSets the button style type.
DisabledToggle switchOffWhen enabled, prevents user interaction with the button.
HiddenToggle switchOffWhen enabled, hides the button from the action column.
Click eventFunction Binding-Binds a function to be called when the button is clicked.
FilterFunction Binding-Binds a function to conditionally control the visibility of the button per row.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button.

Action bar button

The Action bar button section configures the toolbar buttons above the table:

PropertyUI ControlDefaultDescription
Text modeToggle switchOffDisplays toolbar buttons as text links rather than icon buttons.
Button visibilityNumber input3Sets the maximum number of toolbar buttons shown before additional buttons are collapsed.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a button, or use the grip icon to reorder buttons. Click "Add an item +" to add a new action button. Each item has:

PropertyUI ControlDefaultDescription
Texti18n setteroperationSets the display text of the toolbar button. Supports internationalisation.
TypeDropdown (Normal | Primary | Secondary)NormalSets the button style type.
DisabledToggle switchOffWhen enabled, prevents user interaction with the button.
HiddenToggle switchOffWhen enabled, hides the button from the toolbar.
Click eventFunction Binding-Binds a function to be called when the button is clicked.

Action column

The Action column section configures the action column layout:

PropertyUI ControlDefaultDescription
Titlei18n setterOperationSets the header text of the action column. Supports internationalisation.
WidthNumber input-Sets the width of the action column in pixels.
Column freezeRadio group (Left | None | Right)-Freezes the action column when scrolling horizontally.

Group content

The Group content section defines the groups and their row data. Each group entry supports the following properties:

PropertyUI ControlDefaultDescription
Header labeli18n settertitleSets the heading text displayed at the top of the group. Required. Supports internationalisation.
Trailing labeli18n settertailSets the text displayed at the bottom of the group. Required. Supports internationalisation.
Group idi18n setter-Sets a unique identifier for the group. Required.
DatasourceSwitch Setter (Array setter / Variable input)Auto-generatedDefines the row data for this group. The available fields are determined by the configured data columns. Click the pencil icon on a row to edit its field values. Refer to Datasource item configuration.

You can click the edit (pencil) icon to open the item editor, click the delete (trash) icon to remove a group, or use the grip icon to reorder groups. Click "Add an item +" to add a new group.

Datasource item configuration

Each row in the Datasource array displays fields that correspond to the columns defined in the Data column section. For example, if the table has columns for id, company, documentAmount, currency, percent, and date, each datasource row will have the following editable fields:

PropertyUI ControlDefaultDescription
idi18n setterThis is a text Sets the row identifier. Supports internationalisation.
companyi18n setterThis is the linkSets the company name. Supports internationalisation.
documentAmountText input123213.1232Sets the document amount.
currencyi18n setterCNYSets the currency code. Supports internationalisation.
percentText input0.64Sets the percentage value.
datei18n setter2021-08-18 20:52:33Supports internationalisation.
dataIndexi18n setterThis is a text Sets the dataIndex value. Supports internationalisation.
note

The fields shown in the datasource item editor are dynamic and depend on the columns configured in the Data column section.

Row selector (Props sub-section)

Within the Props tab, a Row selector collapsible section provides:

PropertyUI ControlDefaultDescription
Enable row selectionToggle switchOffEnables row selection checkboxes or radio buttons in the table.
Has children selectionToggle switchOffDetermines whether selection controls are rendered on child rows within groups.
Customise selectionFunction Binding-Customises the default properties (such as disabled) of each row's selection control.
Primary Keyi18n setteridSpecifies the field used as the unique identifier for row selection.
Selected row keysArray setter-Sets the list of currently selected row primary keys.

Pagination configuration

The Pagination configuration section configures the table's pagination:

PropertyUI ControlDefaultDescription
Show paginationToggle switchOnControls whether the pagination bar is displayed.
TypeRadio group (Normal | Simple | Mini)NormalSpecifies the pagination style.
Navigation button styleDropdown (Normal | Arrow-only | Arrow-prev-only | No-border)Arrow-onlyDefines the style of the previous and next navigation buttons.
SizeRadio group (Small | Medium | Large)MediumControls the visual size of the pagination bar.
Total recordsNumber input100Sets the total number of records in the dataset.
Current pageNumber input1Sets the currently displayed page number.
Page sizeSelect / Number input20Specifies the number of rows displayed per page.
Selector typeRadio group (None | Filter | Dropdown)NoneSets the type of page size selector control.
Page size listText input5,10,20Specifies the comma-separated list of available page size options.
Page size alignmentRadio group (Start | End)EndSpecifies the position of the page size selector.
Single page hideToggle switchOffHides the pagination bar when only one page of data is available.
Show jumpToggle switchOnShows a Go to Page input field in the pagination bar.
Jump linkText input-Sets a URL template for page number buttons, using {page} as a placeholder.
OnChangeFunction Binding-Customises the callback function triggered when the page number changes.
OnPageSizeChangeFunction Binding-Customises the callback function triggered when the page size changes.

Style (Props sub-section)

Within the Props tab, a Style collapsible section provides:

PropertyUI ControlDefaultDescription
Responsive table typeRadio group (Default | Collapse Row)DefaultSets the responsive layout behaviour on small screens.
Responsive breakpoint (px)Number input500Sets the screen width in pixels at which the responsive layout activates. Visible only when Responsive table type is Collapse Row.

Advanced (Props sub-section)

Within the Props tab, an Advanced collapsible section provides:

PropertyUI ControlDefaultDescription
IDText inputAuto-generatedUnique HTML identifier for the element. Auto-generated from the component title (non-alphanumeric characters are replaced by underscores). You can override this value manually.
NameText inputAuto-generatedHTML name attribute for form identification. Auto-generated from the component title. You can override this value manually.

Styles

For more information, refer to Styles.

Events

The Events tab allows you to bind event handlers to the GroupTable without writing boilerplate code.

Binding an event

  1. Click "Component native event" to select from the GroupTable's supported events:

    • onSelect — Triggered when a row is selected or deselected
    • onSelectAll — Triggered when the select-all checkbox is toggled
    • onSort — Triggered when the sort order changes
    • onRowClick — Triggered when a row is clicked
    • onRowMouseEnter — Triggered when the mouse enters a row
    • onRowMouseLeave — Triggered when the mouse leaves a row
  2. The Event Binding window opens, allowing you to select an event and apply parameter settings.

  3. After selecting an event, it appears in the Existing event table.

    You can click the gear icon to edit the action, or click the trash bin icon to delete the binding.

Handler signatures

The onSelect handler is triggered when a row's selection state changes:

onSelect(selectedRowKeys, record, selected) {
// selectedRowKeys: array of currently selected row keys
// record: the data object of the toggled row
// selected: true when selected, false when deselected
}

The onSelectAll handler is triggered when the select-all control is toggled:

onSelectAll(selected, selectedRowKeys) {
// selected: true when all rows are selected, false when deselected
// selectedRowKeys: array of all selected row keys
}

The onSort handler is triggered when the sort order changes:

onSort(dataIndex, order) {
// dataIndex: the field being sorted
// order: 'asc' or 'desc'
}

The onRowClick handler is triggered when a row is clicked:

onRowClick(record, index, e) {
// record: the data object of the clicked row
// index: the row index
// e: the native click event object
}

The onRowMouseEnter handler is triggered when the mouse enters a row:

onRowMouseEnter(record, index, e) {
// record: the data object of the row
// index: the row index
// e: the native mouse event object
}

The onRowMouseLeave handler is triggered when the mouse leaves a row:

onRowMouseLeave(record, index, e) {
// record: the data object of the row
// index: the row index
// e: the native mouse event object
}

Advanced

For more information, refer to Advanced.

Last updated on 20 May 2026