DataTable
- Changelog
Use DataTable to display and manage datasets with rich interactions such as sorting, filtering, pagination, and row selection.
Package @dynatrace/strato-components, latest version 3.15.1. Below are the changes to DataTable. See Components changelog for all changes to the package.
3.15.0 Released Oct 1, 2026
Updates
- Improved interaction performance for scrolling, hiding a column, opening column settings, and activating a row, with the largest gains in tables that have many hidden columns. (APPDEV-19021)
- Fixed the initial header height estimate overshooting by 1px under the visual refresh, which added an unnecessary vertical scrollbar on the first render. (APPDEV-19979)
- Fixed an issue with keyboard navigation where closing a row actions menu moved focus to the page instead of back to the trigger. (APPDEV-20022)
- Fixed an issue where the arrow key navigation closed an open cell or row actions menu and moved focus to the next row when row interactivity was enabled.
- Fixed datetime and numeric column types producing incorrect output for invalid inputs across all rendering paths (with formatter, without formatter, and CSV export): whitespace-only strings in
datetimecolumns rendered as epoch zero, empty strings and non-numeric values (booleans, arrays,Infinity) innumber,currency, andbitcolumns were formatted as numbers, and invalidDateinstances threw aRangeErrorduring CSV export. (APPDEV-19594) - Datetime and numeric cell values now produce consistent output for all input types (ISO-8601 strings, epoch timestamps, numeric strings, and Date instances) regardless of whether a column
formatteris configured, including during CSV export. (APPDEV-19594) - Fixed keyboard activation and double-click on the column resize handle incorrectly triggering column sort. (APPDEV-20123)
- Fixed behavior tracking attributes across interactive sub-elements and added tracking for drag-and-drop interactions. (APPDEV-19054)
- Added the
anchorScrollToprop to control which edge of the list the scroll position is anchored to when data changes. (APPDEV-20147)
How to opt in
Set anchorScrollTo="end" to keep the row the user is reading in place when rows are inserted above it, which is what a live log or event feed needs. Also provide rowId with a stable identifier from your row data — without it rows are identified by their position in the array and cannot be tracked across updates.
import { DataTable } from '`@dynatrace/strato-components/tables';`
<DataTable
data={rows}
columns={columns}
rowId={(row) => row.id}
anchorScrollTo="end"
/>;
The value says which end of the list stays fixed while the data changes:
'start'(default) — the top of the list is the fixed point, so rows inserted above push everything the user is looking at further down. This is the row virtualizer's own default and the behaviour the table has always had.'end'— the current viewport is the fixed point, so rows inserted above leave the view untouched and the user keeps reading the same row. Rows appended below the viewport do not cause the view to scroll down under either value.
While the user is scrolled to the very top, 'end' is temporarily ignored in favor of 'start', so newly arrived rows appear right away instead of staying hidden above the viewport. The table switches back to 'end' as soon as the user scrolls down again. This is treated as the default, non-configurable behavior of anchorScrollTo="end" — it mirrors how the browser's own overflow-anchor disables anchoring at the top edge, and a user sitting at the top of a live feed is expected to see new rows arrive rather than have them hidden above the scroll position.
The prop exposes anchoring the virtualizer already supports rather than adding a new mechanism of our own.
3.14.0 Released Sep 17, 2026
Updates
- Fixed a rare invalid index console warning when data shrinks to fewer rows with certain other conditions. (APPDEV-19714)
- Rows no longer keep their previous height when line wrapping is toggled while they are scrolled out of view. (APPDEV-19714)
- Fixed the page crashing when downloading large datasets with many hidden columns. (APPDEV-13732)
3.13.0 Released Sep 3, 2026
Updates
datetimecolumns now correctly format ISO-8601 string cell values in both the built-in cell renderer and theformat()callback in custom cell renderers. (APPDEV-19591)- Cell action trigger buttons no longer share an identical accessible name. Each button now includes the column and row, so screen readers can distinguish between them. (APPDEV-19656)
- Fixed the column actions trigger visibility not updating correctly on hover and sort interactions. (APPDEV-19739)
- Fixed the row not activating when clicking on a cell that contained an element with
tabindex="-1", such as<CodeSnippet />. (APPDEV-19744) - Fixed the native browser context menu being suppressed on right-click when no cell or column actions are configured. (APPDEV-19561)
3.11.3 Released Aug 20, 2026
Updates
- The column settings toolbar button no longer shows a wrong hidden column count when
defaultColumnVisibilitycontains an invalid column ID. (APPDEV-19392) - Interactive row triggers now expose their activated state and role description to assistive technologies via
aria-selectedandaria-roledescription. Column and cell action menu triggers now correctly reportaria-expanded="false"when the menu is closed. (APPDEV-19180) - Header column-action triggers are now keyboard-accessible: they display a visible focus ring and can be reached by tabbing. (APPDEV-18611)
- Improved the clarity and tone of column settings messages and tooltips. (APPDEV-18738)
- Selected row count is now announced to screen readers after the selection changes. (APPDEV-19167)
3.11.0 Released Aug 10, 2026
Deprecations
- The per-threshold
showIndicatoroption in themeterbarcolumn config has been deprecated. UseshowThresholdIndicatorsinstead. Until it is removed, existing per-thresholdshowIndicatorflags are collapsed into the column-level flag as a fallback whenshowThresholdIndicatorsisn't set. Alltrueshows all indicators; allfalsehides them; mixed values log a warning. (APPDEV-17783)
Updates
- Added a
showThresholdIndicatorsoption to themeterbarcolumn config to toggle all threshold indicators at once (visible by default). (APPDEV-17783) - Fixed columns incorrectly showing as "Hidden" in the column settings when opened while columns were still loading. (APPDEV-19382)
- Column action trigger buttons no longer share an identical accessible name. Each button now includes the column name, so screen readers can distinguish between them. (APPDEV-18617)
- The outer wrapper no longer causes an
aria-prohibited-attraxe accessibility violation. (APPDEV-18944) - The "Download CSV" menu options are now programmatically associated with their labels, and the toolbar's download/actions menu trigger now exposes its expanded state to assistive technologies. (APPDEV-19172)
- The built-in column headers for drag-and-drop row ordering, row selection, expandable rows, and row actions now have accessible names. (APPDEV-18631)
- Improved rendering performance by ensuring only affected table components re-render after internal state changes. (APPDEV-18255)
- A table with column ordering enabled no longer causes an
aria-required-childrenaccessibility violation when rendered with no data rows. (APPDEV-19287) - Screen readers now announce the number of matching columns when searching in the column settings modal. (APPDEV-19199)
3.10.0 Released Jul 28, 2026
Updates
- Redesigned the column visibility controls in the column settings modal. Replaced the "Show/hide all" checkbox with discrete "Show all" and "Hide all" buttons. Added a "List hidden columns" toggle switch with a hidden-column count. Added a visible/total column counter. When all columns are hidden and listing is off, an empty state is shown instead of the column list. (APPDEV-17483)
- MeterBar columns support opt-in inline value display via the
showValueconfig option. Set it to'left'or'right'to show the value beside the bar. MeterBar columns now also enforce a minimumminWidth. An explicitly configuredminWidthsmaller than the default is ignored; only a larger value is respected. This prevents the bar from collapsing to nothing when the column is resized. (APPDEV-18171) - Column settings search now highlights the matching parts of each column name. (APPDEV-17480)
- Column settings search now shows a "No results found" empty state with a "Clear search" button when the filter matches no columns. (APPDEV-17480)
- Improved accessibility of expandable rows. (APPDEV-17255)
- Fixed the keyboard focus ring on interactive rows showing tiny gaps at each corner. (APPDEV-18087)
3.9.0 Released Jul 10, 2026
Updates
- Added
formatDownloadHeadercallback toDataTable.DownloadDataandDataTableRef.downloadData()to override CSV header names per column. The callback receives{ columnId, leafHeader, groupHeader }and can return a replacement string orundefinedto keep the default header name. (APPDEV-10809) - The download "All" option is no longer shown when using server-side pagination. (APPDEV-18494)
- Row and cell action menus are now closed when the table is scrolled and their anchor row leaves the visible area. (APPDEV-17725)
- Added
disabledRowDragAndDropTooltipto therowOrderingconfig and theuseLockedRowOrderhook to explain why a row's drag handle is disabled. A default tooltip is shown while the table is sorted. (APPDEV-17473) - Fixed the phantom drag mode that left column headers unresponsive to interactions after starting to drag a column and releasing immediately. (APPDEV-18523)
- Improved the look and feel of the column settings modal, as follows: columns are now grouped under "Pinned to left", "Pinned to right", and "Unpinned" section headers; drag handles moved to the left and the visibility and pinning controls to the right; hidden columns show a "Hidden" chip, and the controls have updated icons. (APPDEV-17477)
- Fixed the URL detection behavior in text column link rendering. (APPDEV-18658)
- Fixed the row drag handle tooltip not updating when the multi-sort changed. (APPDEV-17473)
- You can now customize the CSV download file name by passing a string or callback to the new
fileNameprop. (APPDEV-10808)
3.8.0 Released Jul 1, 2026
Deprecations
- The
nameprop onthresholdsinDataTableMeterbarColumnConfigis deprecated. Threshold names are not displayed in the table and this prop will be removed. (APPDEV-15841)
Updates
- Added
aria-label,aria-labelledby,aria-describedby, andaria-detailsprops. A defaultaria-labelof "Data table" is applied automatically when no accessible name is provided. (APPDEV-17681) - Fixed the row ordering drag-and-drop live region from being placed inside `[role=grid
- Fixed the interactive row highlight border becoming misaligned with the pinned column borders at non-100% browser zoom levels. (APPDEV-18333)
- The column settings modal now requires at least one visible column. Clicking "Apply" with all columns hidden shows a blocking error message and keeps the modal open. (APPDEV-7035)
- Fixed column settings search from not matching grouped columns by their group header label. (APPDEV-18217)
- Added
visibleColumnLimitstoDataTable.VisibilitySettingsto cap the number of visible columns in the column settings modal. Exceeding themaxWarningthreshold shows a non-blocking message; exceeding themaxErrorthreshold shows a blocking error message and disables the "Apply" button. Limits can also be supplied per invocation viaopenColumnSettings()onDataTableRef, taking precedence over the slot value. (APPDEV-7035) - Fixed the React warning "Cannot update a component while rendering a different component" by scoping store re-renders to affected components. This also fixes the "Maximum update depth exceeded" error that occurred in some apps. (APPDEV-18418)
3.7.1 Released Jun 30, 2026
Updates
- Fixed the React warning "Cannot update a component while rendering a different component" by scoping store re-renders to affected components. This also fixes the "Maximum update depth exceeded" error that occurred in some apps. (APPDEV-18418)
3.7.0 Released Jun 12, 2026
Updates
- Column ordering via drag and drop now scrolls correctly when dragging columns to the edge of the table. (APPDEV-17398)
- The empty state container is now sticky and stays centered within the visible viewport when the table is horizontally scrollable. (APPDEV-17722)
- Dragging a column header no longer causes the page to scroll unexpectedly. (APPDEV-17906)
- Fixed an issue in Firefox where resizing a column where
columnOrderingwas enabled incorrectly triggered column dragging. (APPDEV-17925) - In tables with sub-rows, custom headers in the sub-row column now use the full width. (APPDEV-16976)
- Fixed the sub-row expander path not showing correctly after moving the last child row to the first position via drag-and-drop row ordering. (APPDEV-18043)
- Fixed the loading spinner not being vertically centered in the visible data area when the user had scrolled the table before a loading state was triggered. (APPDEV-18091)
3.6.0 Released May 29, 2026
Updates
openColumnSettings()now acceptsresetColumnVisibility,resetColumnOrder, andresetColumnPinningto define a custom reset state when opening the column settings modal programmatically. (APPDEV-17273)- Fixed sorting arrow disappearing when initially opening the column actions menu via right-click. (APPDEV-17723)
3.5.0 Released May 13, 2026
Updates
- Fixed vertical alignment of values in sparkline columns. Cells of sparkline columns now correctly stretch to fill the full row height. (APPDEV-17156)
- CSV download options now display row counts. When no table action intents are configured, the options are shown directly, instead of being nested. (APPDEV-16778)
- The interactive row associated with an open cell or row actions menu is now highlighted while the user interacts with the menu. (APPDEV-17386)
- Row ordering drag handles now correctly reflect the disabled state for all rows after sorting and clearing sorting. (APPDEV-17657)
- Fixed an unexpected focus ring appearing on the drag handle after dropping a row via mouse. (APPDEV-17634)
- When pagination is enabled, the
scrollToRowfunction now navigates to the correct page and scrolls to the correct row. (APPDEV-12465) - Fixed the focus ring not being visible on the drag handle of the dragged row when reordering rows via keyboard. (APPDEV-17634)
- Added
log-contenthighlighting support for 16-character hex IDs so both letter-leading and digit-leading IDs are highlighted consistently. (APPDEV-11851)
3.4.0 Released May 5, 2026
Updates
- The page now remains interactive when cell or column actions menu is open. (APPDEV-17100)
- When downloading large tables as CSV, a progress indicator is now shown, and the table stays responsive during the download. (APPDEV-13387)
- Sorting controls are now also available in the column actions menu for any column with sorting enabled. (APPDEV-16866)
- The buttons for showing/collapsing row details from expandable rows no longer have a broken
aria-controlsreference. (APPDEV-17125) - Unpinned columns can now be ordered via drag and drop while other columns are pinned. (APPDEV-16859)
3.3.0 Released Apr 21, 2026
Updates
- Column headers now display sort order indicators when multiple columns are sorted simultaneously. (APPDEV-10404)
- Gantt chart annotations now display indicators that highlight the position of annotation markers in the chart. Indicators can be configured per track and overridden per marker using the
indicatorsDisplayprop. (APPDEV-16812) - Fixed an issue that occurs in rare cases due to a rendering timing issue. (APPDEV-16787)
- Built-in
TableActionsMenu(CopyItem,LineWrap,HideColumn,ColumnOrder,ColumnPinning,ColumnFontStyle) actions now haveonSelectcallback available. (APPDEV-4846) MeterBarCharttooltip inmeterbarcolumns is now unpinned on click outside the chart or tooltip. (APPDEV-16627)- Sparkline columns allow configuration for
min,maxandscaleof theyAxis. (APPDEV-16840) - The column resize handle now meets ARIA requirements and no longer causes an
aria-required-childrenviolation. - Added
data-dt-propertiesattribute to the toolbar and column line wrap actions, column header sorting, row selection controls, sub-row 'Expand' and 'Collapse' buttons, and column settings modal visibility controls. - The imperative handle now exposes
getDisplayedRowIds, which returns the IDs of the displayed rows in their display order. (APPDEV-16929) - Column reordering via drag and drop now meets ARIA requirements and no longer causes an
aria-required-childrenviolation.
3.2.0 Released Apr 7, 2026
Updates
- Selecting text inside the table no longer triggers row activation. (APPDEV-16654)
- The event passed to
onActiveRowChangeis now aclickevent (previouslypointerup); middle mouse button clicks pass anauxclickevent. (APPDEV-16654) - Scrollable tables now keep correct row heights when
lineWrapis enabled and previously virtualized rows scroll back into view. (APPDEV-16699) - Added
data-dt-nameattributes to the toolbar line wrap button and the column line wrap action. (APPDEV-16670) - Columns no longer resize when hovering a header with column actions in a condensed or comfortable table. (APPDEV-16981)
- Column widths for already measured columns are persisted when columns reference changes. This fixes an issue with columns not being rendered correctly, after the columns reference changed in a horizontally scrolled table. (APPDEV-16792)
3.1.3 Released Apr 1, 2026
Updates
- Table no longer crashes due to the row virtualizer attempting to measure detached DOM elements. (APPDEV-16862)
3.1.2 Released Mar 24, 2026
Updates
- No longer spreads configuration props to DataTable DOM element.
3.1.0 Released Mar 19, 2026
Deprecations
-
Column type
dateis now deprecated. Usedatetimeinstead. (APPDEV-4005) -
The
onDownloadDataon theDataTableelement is now deprecated. Please use it via theDataTable.DownloadDatatoolbar slot instead. (APPDEV-16234)
Updates
- Datetime columns now accept
date,time, ordatetimeas shorthandformattervalues, making it easy to show only the date or time portion without providing fullFormatDateOptions. (APPDEV-4005) - The
scrollToRowmethod now supports an additionalalignparameter (start,center,end) to control where the target row is positioned within the table’s visible area. Defaults tostart. (APPDEV-14431) - The
onDownloadDatacallback is now available on theDataTable.DownloadDatatoolbar slot. (APPDEV-16234) - Batch selection now handles changing data and selection across multiple tables correctly. (APPDEV-16683)
- Sparkline columns allow configuration of the
xAxis. (APPDEV-13820) - Adds
data-dt-nametracking attributes to more interactive elements: sorting/ordering header cells and sorting icons, row selection and subrow expand/collapse buttons, column resize and row drag-and-drop handles, and column settings modal controls. (APPDEV-16589) - Pressing
Enteron an interactive element within a row (e.g. a button) no longer activates or deactivates the row. This aligns keyboard behavior with mouse behavior. (APPDEV-16586)
3.0.2 Released Apr 1, 2026
Updates
- Table no longer crashes due to the row virtualizer attempting to measure detached DOM elements. (APPDEV-16862)