Skip to main content

Table

info

This Table web component is available since 2.0 and has been newly implemented to provide better screen reader and keyboard handling support. Currently, it's considered experimental as its API is subject to change. This Table replaces the previous Table web component, that has been part of @ui5/webcomponents version 1.x. For compatibility reasons, we moved the previous Tabple implementation to the @ui5/webcomponents-compat package and will be maintained until the new Table is experimental.

The ui5-table component provides a set of sophisticated features for displaying and dealing with vast amounts of data in a responsive manner. To render the ui5-table, you need to define the columns and rows. You can use the provided ui5-table-header-row and ui5-table-row components for this purpose.

Features​

The ui5-table can be enhanced in its functionalities by applying different features. Features can be slotted into the features slot, to enable them in the component.

The following features are currently available:

Keyboard Handling​

This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up]. In order to use this functionality, you need to import the following module: import "@ui5/webcomponents-base/dist/features/F6Navigation.js"

Furthermore, you can interact with ui5-table via the following keys:

If the focus is on a row, the following keyboard shortcuts are available:

  • Down - Navigates down
  • Up - Navigates up
  • Right - Selects the first cell of the row
  • Space - Toggles the selection of the row
  • Ctrl/Cmd + A - In multi selection mode, toggles the selection of all rows
  • Home - Navigates to the first row, if the focus is on the first row, navigates to the header row
  • End - Navigates to the last row, if the focus is on the last row, navigates to the growing button
  • Page Up - Navigates one page up, if the focus is on the first row, navigates to the header row
  • Page Down - Navigates one page down, if the focus is on the last row, navigates to the growing button
  • F2 - Focuses the first tabbable element in the row
  • F7 - If focus position is remembered, moves focus to the corresponding focus position row, otherwise to the first tabbable element within the row
  • [Shift]Tab - Move focus to the element in the tab chain outside the table

If the focus is on a cell, the following keyboard shortcuts are available:

  • Down - Navigates down
  • Up - Navigates up
  • Right - Navigates right
  • Left - Navigates left, if the focus is on the first cell of the row, the focus is moved to the row.
  • Home - Navigates to the first cell of the current row, if the focus is on the first cell, navigates to the corresponding row
  • End - Navigates to the last cell of the current row, if the focus is on the last cell, navigates to the corresponding row
  • Page Up - Navigates one page up while keeping the focus in same column
  • Page Down - Navigates one page down while keeping the focus in same column
  • F2 - Toggles the focus between the first tabbable cell content and the cell
  • Enter - Focuses the first tabbable cell content
  • F7 - If the focus is on an interactive element inside a row, moves focus to the corresponding row and remembers the focus position of the element within the row
  • [Shift]Tab - Move focus to the element in the tab chain outside the table

If the focus is on an interactive cell content, the following keyboard shortcuts are available:

  • Down - Move the focus to the interactive element in the same column of the previous row, unless the focused element prevents the default
  • Up - Move the focus to the interactive element in the same column of the next row, unless the focused element prevents the default
  • [Shift]Tab - Move the focus to the element in the tab chain

ES6 Module Import​

import "@ui5/webcomponents/dist/Table.js";
import "@ui5/webcomponents/dist/TableRow.js"; (ui5-table-row)
import "@ui5/webcomponents/dist/TableCell.js"; (ui5-table-cell)
import "@ui5/webcomponents/dist/TableHeaderRow.js"; (ui5-table-header-row)
import "@ui5/webcomponents/dist/TableHeaderCell.js"; (ui5-table-header-cell)

Basic Sample​

Properties​

accessibleName​

DescriptionDefines the accessible ARIA name of the component.
Typestring | undefined
Defaultundefined

accessibleNameRef​

DescriptionIdentifies the element (or elements) that labels the component.
Typestring | undefined
Defaultundefined

noDataText​

DescriptionDefines the text to be displayed when there are no rows in the component.
Typestring | undefined
Defaultundefined

overflowMode​

DescriptionDefines the mode of the ui5-table overflow behavior.
Available options are:
Scroll - Columns are shown as regular columns and horizontal scrolling is enabled.
Popin - Columns are shown as pop-ins instead of regular columns.
Type"Scroll" | "Popin"
Default"Scroll"

loading​

DescriptionDefines if the loading indicator should be shown.
Note: When the component is loading, it is non-interactive.
Typeboolean
Defaultfalse

loadingDelay​

DescriptionDefines the delay in milliseconds, after which the loading indicator will show up for this component.
Typenumber
Default1000

Slots​

default​

DescriptionDefines the rows of the component.
Note: Use ui5-table-row for the intended design.
TypeArray<TableRow>

headerRow​

DescriptionDefines the header row of the component.
Note: Use ui5-table-header-row for the intended design.
TypeArray<TableHeaderRow>

nodata​

DescriptionDefines the custom visualization if there is no data available.
TypeArray<HTMLElement>

features​

DescriptionDefines the features of the component.
TypeArray<ITableFeature>

Events​

row-click​

DescriptionFired when an interactive row is clicked.
TypeCustomEvent<TableRowClickEventDetail>
Parametersrow: TableRow
The row instance

Methods​

No methods available for this component.

CSS Parts​

No CSS parts available for this component.

Base Functionalities​

Overflow Mode​

The table provides two horizontal overflow modes: Scroll (default) or Popin.

Scroll Mode​

When the table's content does not fit horizontally into the viewport, a horizontal scrollbar is shown, allowing the user to scroll.

Popin Mode​

The Popin mode is a responsive design feature tailored to adapt column layouts in UI grids or tables, particularly for smaller screens or constrained container widths.

When screen space becomes limited, Popin mode seamlessly reorganizes columns. Those that cannot fit within the available width are intelligently relocated to the "popin area", an allocated space designed specifically for accommodating additional columns.

You can influence the order of columns appearing the popin area, by defining the importance of each column.

Sticky Header Row​

Enable a sticky header by utilizing the properties sticky and sticky-top of the ui5-table-header-row.

Sticky Behavior with scrollable table​

Sticky Behavior with scrollable container​

If your table is located inside of a scrollable container and you have other sticky content, you can use sticky-top to define the header's top offset.

No Data​

You can provide an illustration or a custom text, that is shown when the table has no data using the nodata slot.

Interactive Rows​

Create an interactive table by marking ui5-table-row components as interactive. Pressing on an interactive row will fire the row-click event.