Page History
(this page was created automatically. In case of formatting issues, please visit the official Wiki Page)
...
Table Selection
...
confluencePath: Data Entry/Select
Table Selection
Overview
- The Dynamic Table Selection Component is a form control for choosing items.
- It lets users select one or many entries from a table-based dropdown.
- It combines a form field with a data grid to handle large or complex datasets.
- It is used when a table view is clearer than a standard dropdown.
- It supports single and multiple selection behaviors.
...
- validation — Configures validation rules for the table selection control, including:
- required — When set to true, the field must have a selection before the form can be submitted. This ensures users make a selection when the information is essential.
Links
- Figma: https://www.figma.com/design/yck1tcUXgdQ5aYX6iUAwrO/GE---Astronaut-Design-System?node-id=4830-274143&t=2GNf1jEXqXOrnDUK-1
- Live style guide: https://e1-dev.k8s.myapp.de/live-style-guide/app-composer/table
Guidelines
[NO DATA AVAILABLE]
Accessibility
...
Usage
- Prefer this control when users must pick from structured records and a table view clarifies choice. Configure visible columns with
elementsand uniquely identify rows withkeyExprto keep selections stable across paging and refresh. - Match the cardinality of the business field to the component by setting
selectionModeto"single"for one value or"multiple"for sets. - Use
readonly: trueto show the current selection without permitting edits (e.g., confirmation or audit views). - Require a choice when the field is mandatory via
validation.required: true; initialize known defaults withdefaultValue. - For large datasets, enable server-side paging with
enablePagination: trueand a tunedpageSize; align API naming viapaginationRequestParamsMapandpaginationResponseFieldsMap. - Persist user progress in long flows by turning on
saveInLocalStorage. - Make search effective by scoping it to the most discriminative fields using
fieldsUsedInSearch.
Sizing & Layout
- Show only columns that help decision-making and put the most informative ones first by ordering
elementsaccordingly. - Balance scan length with paging by tuning
pageSize(e.g., fewer rows for denser columns, more rows for sparse tables).
Visibility & Authorization
- Hide the field completely when it must not appear by setting
hidden: true; when it may appear but not be changeable, disable interaction withauthorizationDisable.
Content & Localization
- Name the submitted field explicitly with
dataFieldand route it to the correct HTTP location usingcontrolsRequestType(BODY/HEADER/PATH). - Provide stable automation hooks via
dataTestIdfor tests and accessibility checks.
Dos & Don’ts
| Do | Don’t | Article setting(s) |
|---|---|---|
Set selectionMode: "single" for single-value fields; "multiple" only when sets are valid. | Leave the default and allow incorrect cardinality. | selectionMode |
Use a stable backend key for selection by setting keyExpr (e.g., customerId). | Use a label column or non-unique field as the key. | keyExpr |
Show only decisive columns and order them for scanning via elements. | Expose every attribute; bury key info at the end. | elements |
Enable paging and set a sensible pageSize for large data. | Load entire collections at once. | enablePagination, pageSize |
| Map client/server paging and data fields explicitly. | Assume server names match the client’s defaults. | paginationRequestParamsMap, paginationResponseFieldsMap, dataSourcePath |
| Persist the user’s picks across reloads in long flows. | Force users to reselect after a refresh. | saveInLocalStorage |
Make the field required when it’s mandatory; seed a known defaultValue when appropriate. | Depend on external validation alone. | validation, required, defaultValue |
| Disable for permission gaps to explain in-place why it can’t change. | Hide the control when users should see but not edit it. | authorizationDisable |
| React immediately to changes using the value-change event. | Poll for changes or delay updates. | events.ON_VALUE_CHANGE |
| Send complex filters in the request body and normalize operators. | Pack long filters into query strings with mismatched operators. | useFiltersInRequestBody, filterOperatorsMap |
Accessibility
- Maintain stable, unique selection references using backend IDs via
keyExpr. - Prevent non-functional interaction by setting
readonly: trueduring view-only states and disabling by policy withauthorizationDisable. - Ensure mandatory input is programmatically determinable with
validation.required. - Reduce cognitive load by exposing only necessary columns and ordering them with
elements, and by paging long lists usingenablePaginationandpageSize. - Avoid color-only meaning; convey state via explicit
readonly/authorizationDisablesettings and clear column labels configured inelements. - Improve findability with targeted search fields using
fieldsUsedInSearch.