Skip to content

ETable Table ​

import EUI 1.0

Examples ​

Columns, selection, filters and fixed columns ​

QML sourceQML
Preview
Run the code to try the component

Edit text, properties, or events, then select Run.

Code runs in this browser Licenses

Grouped headers, tree rows and lazy loading ​

QML sourceQML
Preview
Run the code to try the component

Edit text, properties, or events, then select Run.

Code runs in this browser Licenses

Expanded details and merged cells ​

QML sourceQML
Preview
Run the code to try the component

Edit text, properties, or events, then select Run.

Code runs in this browser Licenses

Basic usage ​

QML sourceQML
Preview
Run the code to try the component

Edit text, properties, or events, then select Run.

Code runs in this browser Licenses

Basic usage ​

QML sourceQML
Preview
Run the code to try the component

Edit text, properties, or events, then select Run.

Code runs in this browser Licenses

Properties ​

PropertyDescriptionValues and default
appendDelegateComponent

Component slot for custom input append area or list end; null uses the default content. See this page’s examples for delegate context.

Defaultnull
borderbool

Whether to show borders.

Defaultfalse
borderModestring

Table border mode; default follows the border setting.

default
full
inner
outer
none

Default"default"
cellAreavar

Index bounds of the current selection in displayed rows and columns.

Fields:
startRow, startColumn, endRow
endColumn

Defaultnull
cellAreasvar

Additional Ctrl-selected ranges; clipboard operations use the active cellArea.

Default[]
cellDelegateComponent

Component slot for custom table cell or date cell; null uses the default content. See this page’s examples for delegate context.

Defaultnull
cellStylevar

Row or cell style object, or a callback receiving row context.

Defaultnull
clipboardProvidervar

Clipboard read and write interface; uses the system clipboard by default.

text()
setText(value)

Defaultnull
collapsedGroupKeysvar

Collapsed group identifiers; toggle with toggleGroup().

Default[]
columnDraggablebool

Show header drag areas and allow reordering within the same fixed partition and header group.

Defaultfalse
columnOrdervar

Column order identified by columnKey/prop; fixed-column partitions remain enforced.

Default[]
columnSettingsTextstring

Text for table column settings.

DefaultEControlConfig.textFor(control, "Columns", ELocale.texts)
columnWidthsvar

Explicit column widths keyed by column identifier, in pixels.

Default({})
columnsvar

Column definitions for content, layout and interactions.

Common fields:
prop, label, width, minWidth
sortable, fixed, formatter
type, children, filters

Default[]
currentColumnIndexint

Index of the active column among visible columns.

Default-1
currentPageint

Current page, starting at 1; changing pages clears the active range and scrolls to the page top.

Default1
currentRowIndexint

Index of the current row in the source model.

-1: no selection
0 and above: source row index

Default-1
defaultExpandAllbool

Expand all nodes or rows initially.

Defaultfalse
defaultSortvar

Initial sort object, such as {prop: "score", order: "descending"}.

Fields:
prop, order

Defaultnull
draggedColumnIndexint

Internal visible-column index being dragged.

Default-1
draggedRowIndexint

Internal model index of the row being dragged.

Default-1
editConfigvar

Editing settings {trigger: dblclick/click/manual, mode: cell/row, activeMethod: function}.

trigger: "click" / "dblclick"
mode: "cell" / "row"
activeMethod: function

Default({trigger: "dblclick", mode: "cell"})
editRulesvar

EFormItem validation rules by field: required, type, bounds, patterns and asynchronous validators.

Default({})
editValuevar

Draft of the active editing field, committed after validation by commitEdit().

Defaultnull
editValuesvar

Draft values by field during row editing; update with setEditValue().

Default({})
editablebool

Enable editing for cells configured with editable/editRender/editDelegate.

Defaultfalse
editingCellvar

Current editing cell context; null when no cell is being edited.

Fields:
row, key, column

Defaultnull
emptyDelegateComponent

Component slot for custom empty state; null uses the default content. See this page’s examples for delegate context.

Defaultnull
emptyTextstring

Text displayed when no data is available.

DefaultEControlConfig.textFor(control, "NoData", ELocale.texts)
enabledbool

Allow interaction; false disables the control.

Defaulttrue
expandDelegateComponent

Component slot for custom expanded table row; null uses the default content. See this page’s examples for delegate context.

Defaultnull
expandRowKeysvar

Unique keys of expanded nodes, table rows or menu entries.

Default[]
expansionHeightsvar

Expanded-row content-height cache keyed by row identifier.

Defaultnew Map()
filterValuesvar

Filter-value arrays keyed by column identifier.

Default({})
fitbool

Fit table columns to the available width.

Defaulttrue
footerDatavar

Footer rows supplied as arrays or objects keyed by column fields.

Default[]
footerMethodvar

Footer computation callback receiving {columns, data}.

Defaultnull
footerSpanMethodvar

Footer-span callback {rowIndex, columnIndex, column}, returning [rowspan, colspan] or an object.

Defaultnull
generatedRowIdint

Internal counter for generated row identifiers.

Default0
groupFieldsvar

Grouping fields with nested grouping; tree data retains its existing tree expansion.

Default[]
headerDelegateComponent

Component slot for custom header; null uses the default content. See this page’s examples for delegate context.

Defaultnull
headerHeightint

Menu item, data row or header row height in pixels.

Default44
heightreal

Component size in pixels; may be bound to its parent layout.

DefaultimplicitHeight
hiddenColumnsvar

Unique keys of hidden columns.

Default[]
highlightCurrentColumnbool

Highlight the active column.

Defaultfalse
highlightCurrentRowbool

Highlight the selected node or row.

Defaulttrue
highlightHoverColumnbool

Highlight the hovered column.

Defaultfalse
historyLimitint

Maximum undo snapshots; 0 disables history.

Default100
hoveredColumnIndexint

Internal index of the hovered visible column.

Default-1
indentint

Indentation per tree or menu level in pixels.

Default16
internalMutationbool

Internal mutation marker preventing edits from becoming the original baseline.

Defaultfalse
keepSourcebool

Enable revertData() to restore the original snapshot.

Defaultfalse
keyboardNavigationbool

Enable arrows, Tab, Home/End, editing, clipboard and history shortcuts.

Defaultfalse
layoutKeystring

Persistent column-layout key; loads saved order, widths and visibility when nonempty.

Default""
lazybool

Create content or load data on demand; data controls use load / lazyLoad.

Defaultfalse
lazyChildrenvar

Loaded child-node cache keyed by node identifier.

Default({})
loadvar

Lazy-load callback receiving a node and resolve; call resolve(children) to provide children.

Defaultnull
loadingbool

Show the loading overlay; proxy requests manage this state automatically.

Defaultfalse
loadingKeysvar

Keys of nodes or rows currently loading lazily.

Default[]
maxHeightint

Maximum display height in pixels; 0 adds no extra limit.

Default0
menuItemsvar

Context menu item array; menuCommand handles custom commands.

Fields:
command, label, disabled

Default[]
mergeCellsvar

Explicit body merges {row, col, rowspan, colspan}, indexed by the current view.

Fields:
row, col, rowspan
colspan

Default[]
mergeFooterCellsvar

Footer merge rules {row, col, rowspan, colspan}.

Fields:
row, col, rowspan
colspan

Default[]
minHeightint

Minimum implicit height in pixels.

Default0
modelvar

Array of row objects; reassign the array to notify QML. Tree rows use the children field configured by treeProps.

Default[]
modelRevisionint

Internal data or geometry revision that triggers dependent bindings.

Default0
multiSortbool

Allow header clicks to accumulate multiple sorting fields.

Defaultfalse
pageSizeint

Records per page; values below 1 use 1.

Default10
pageSizesvar

Page-size choices for the built-in pager.

Default[10, 20, 50, 100]
paginationbool

Enable the built-in pager; proxy mode obtains the current page from query.

Defaultfalse
preserveExpandedContentbool

Keep instantiated expanded-row content after collapsing it.

Defaultfalse
preservedExpansionsvar

Cache of expanded content instances to preserve.

Defaultnew Map()
previousCurrentRowvar

Previous current row used to emit old/new row change events.

Defaultnull
proxyConfigvar

Data proxy with query/autoLoad/remoteSort/remoteFilter and custom actions; query returns an array or {rows, total}.

Fields:
query, autoLoad, remoteSort
remoteFilter

Default({})
queryErrorstring

Error text from the latest failed proxy query.

Default""
queryFormvar

Query form object passed to proxyConfig.query.

Default({})
queryRevisionint

Internal asynchronous-query revision used to reject stale responses.

Default0
radioKeyvar

rowKey of the radio-selected row, or undefined when unselected.

Defaultundefined
rangeSelectionbool

Enable drag/Shift range selection, Ctrl multiple ranges and drag filling.

Defaultfalse
redoStackvar

Internal redo snapshots; use redo() instead of modifying this state.

Default[]
resettingPagebool

Internal page reset state preventing duplicate proxy reload queries.

Defaultfalse
rowDraggablebool

Show row drag handles; row reordering is disabled in tree, grouped and sorted views.

Defaultfalse
rowExpandablevar

Callback determining whether a row may expand.

Defaultnull
rowHeightint

Menu item, data row or header row height in pixels.

Default44
rowKeyvar

Unique identifier field; stable unique keys preserve selection, expansion and caches.

Default""
rowStylevar

Row or cell style object, or a callback receiving row context.

Defaultnull
selectOnIndeterminatebool

Select all rows when the header checkbox is clicked in an indeterminate state.

Defaulttrue
selectionCachevar

Selected table-row cache preserving selection across model updates.

Default[]
selectionKeysvar

Unique keys of checked nodes or selected table rows.

Default[]
showColumnSettingsbool

Show table column visibility settings.

Defaultfalse
showFooterbool

Show multiple footer rows configured by footerData/footerMethod.

Defaultfalse
showHeaderbool

Show the header area.

Defaulttrue
showOverflowTooltipbool

Show a tooltip when cell text overflows.

DefaultEControlConfig.optionFor( control, "table", "showOverflowTooltip", false )
showSummarybool

Show a summary row at the bottom of the table.

Defaultfalse
showToolbarbool

Show the CRUD, validation, history, find, file, print and chart toolbar.

Defaultfalse
sortOrderstring

Table sorting direction.

ascending
descending
Empty string (clear sorting)

Default""
sortPropstring

Sort field name.

Default""
sortsvar

Multiple-sort descriptors {prop, order}; order is ascending or descending.

Fields:
prop, order

Default[]
sourceRowsvar

Original row snapshot used for keepSource, change sets and rollback.

Default[]
spanMethodvar

Cell-span callback returning [rowspan, colspan] or an equivalent object.

Defaultnull
stripebool

Use alternating table row backgrounds.

Defaultfalse
sumTextstring

Text in the first summary column.

DefaultEControlConfig.textFor(control, "Total", ELocale.texts)
summaryMethodvar

Summary callback receiving columns and data and returning per-column values.

Defaultnull
toolbarDelegateComponent

Custom toolbar Component receiving table when loaded.

Defaultnull
tooltipEffectstring

Visual theme of overflowing cell tooltips.

"light" / "dark"

DefaultEControlConfig.optionFor(control, "table", "tooltipEffect", "dark")
tooltipFormattervar

Overflow tooltip formatter receiving cell context.

DefaultEControlConfig.optionFor(control, "table", "tooltipFormatter", null)
tooltipOptionsvar

Table overflow tooltip settings.

DefaultEControlConfig.optionFor(control, "table", "tooltipOptions", ({}))
totalint

Total server records returned by the data proxy.

Default0
treePropsvar

Object configuring data field mappings and node behavior.

Fields:
children, hasChildren, checkStrictly

Default({ children: "children", hasChildren: "hasChildren", checkStrictly: true })
typingEditbool

Internal typing-to-edit state controlling initial text selection.

Defaultfalse
undoStackvar

Internal undo snapshots; use undo() instead of modifying this state.

Default[]
validatingbool

Whether validation is running; concurrent cell writes are prevented.

Defaultfalse
validationErrorsvar

Array of errors from edit validation.

Fields:
row, column, message

Default[]
virtualColumnsbool

Render columns by the horizontal viewport from 24 columns; body merges keep all columns for correct spans.

Defaulttrue
visiblebool

Whether the component is visible.

Defaulttrue
widthreal

Component size in pixels; may be bound to its parent layout.

DefaultimplicitWidth
accentColorcolorRead only

Resolved color from the theme, current state and custom palette.

DefaultComputed at runtime
allColumnsvarRead only

All leaf column definitions after expanding groups.

DefaultComputed at runtime
allRowsvarRead only

Flattened original table rows and tree child rows.

DefaultComputed at runtime
allSelectedboolRead only

Whether all selectable table rows are selected.

DefaultComputed at runtime
borderColorcolorRead only

Border color.

DefaultComputed at runtime
canRedoboolRead only

Whether a redo operation is available.

DefaultComputed at runtime
canUndoboolRead only

Whether an undo operation is available.

DefaultComputed at runtime
checkedRowCountintRead only

Number of currently checked selectable rows.

DefaultComputed at runtime
columnLayoutvarRead only

Computed column widths and positions.

DefaultComputed at runtime
columnModelvarRead only

Table columns after visibility filtering and fixed-column ordering.

DefaultComputed at runtime
columnTreevarRead only

Grouped table-column tree and depth information.

DefaultComputed at runtime
currentEntryvarRead only

Flattened entry of the current row, including its original model index.

DefaultComputed at runtime
currentRowvarRead only

Selected table-row data object; null when no row is selected.

DefaultComputed at runtime
displayRowsvarRead only

Table rows rendered after filtering and sorting.

DefaultComputed at runtime
effectiveHeaderHeightintRead only

Actual table header or row height after depth and minimum-size handling.

DefaultComputed at runtime
effectivePageSizeintRead only

Effective page size, at least 1.

DefaultComputed at runtime
effectiveRowHeightintRead only

Actual table header or row height after depth and minimum-size handling.

DefaultComputed at runtime
effectiveTotalintRead only

Processed row count locally, or total in proxy mode.

DefaultComputed at runtime
footerHeightintRead only

Computed height of multiple footer rows.

DefaultComputed at runtime
footerRowsvarRead only

Computed footer rows from footerData/footerMethod/showSummary.

DefaultComputed at runtime
hasTreeboolRead only

Whether the table model contains tree child rows.

DefaultComputed at runtime
hoverColorcolorRead only

Hover background color.

DefaultComputed at runtime
indeterminateboolRead only

Show indeterminate progress or read partial selection state.

DefaultComputed at runtime
mergedRowsvarRead only

Row geometry computed for merged table cells.

DefaultComputed at runtime
pageCountintRead only

Page count calculated from total records, at least 1.

DefaultComputed at runtime
pagerHeightintRead only

Computed built-in pager height.

DefaultComputed at runtime
processedRowsvarRead only

View rows after filtering, sorting and grouping, before paging.

DefaultComputed at runtime
radioRowvarRead only

Radio-selected row object, or null when unselected.

DefaultComputed at runtime
renderColumnIndexesvarRead only

Visible-column indexes rendered for the viewport, including fixed columns.

DefaultComputed at runtime
rowCountintRead only

Data row count or watermark column/row count, computed from model or layout.

DefaultComputed at runtime
scrollLeftrealRead only

Current horizontal or vertical scroll offset in pixels.

DefaultComputed at runtime
scrollToprealRead only

Current horizontal or vertical scroll offset in pixels.

DefaultComputed at runtime
selectableRowsvarRead only

Current table rows eligible for selection.

DefaultComputed at runtime
selectedColorcolorRead only

Resolved color from the theme, current state and custom palette.

DefaultComputed at runtime
selectedRowsvarRead only

Original data objects for selected table rows.

DefaultComputed at runtime
selectionColumnvarRead only

Table selection-column definition.

DefaultComputed at runtime
sortColumnvarRead only

Definition of the currently sorted table column.

DefaultComputed at runtime
stripeColorcolorRead only

Resolved color from the theme, current state and custom palette.

DefaultComputed at runtime
summaryValuesvarRead only

Resolved per-column summary values.

DefaultComputed at runtime
surfaceColorcolorRead only

Resolved color from the theme, current state and custom palette.

DefaultComputed at runtime
tableWidthrealRead only

Total table scroll-content width.

DefaultComputed at runtime
toolbarHeightintRead only

Actual table column-settings toolbar height.

DefaultComputed at runtime
localizedTextsvarRead only

Localized texts for the current language; updated when the language changes.

DefaultELocale.texts

Signals ​

SignaturePurpose
radioChange(var row)

Emitted when the radio-selected row changes; row is the selected row.

sortChange(var sort)

Emitted when sorting changes; sort contains the sorting settings.

selectAll(var selection)

Emitted when select-all changes; selection contains the checked rows.

filterChange(var filters)

Emitted when filters change; filters contains the current filters.

headerClicked(var column)

Emitted when a header is clicked; column is its column definition.

queryCompleted(var result)

Emitted after a remote query completes; result is the query result.

headerContextMenu(var column)

Emitted when a header is right-clicked; column is its column definition.

rowClicked(var row, int index)

Emitted when a row is clicked; row is its data and index is its index.

rowReordered(int from, int to)

Emitted after reordering rows; from and to are the old and new positions.

select(var selection, var row)

Emitted when a row checkbox changes; selection contains checked rows and row is the changed row.

selectionChange(var selection)

Emitted when checked rows change; selection contains the current checked rows.

cellAreaChangedByUser(var area)

Emitted when the user changes the cell selection; area is the current range.

editStarted(var row, var column)

Emitted when cell editing starts; row is the row data and column is the column definition.

columnReordered(int from, int to)

Emitted after reordering columns; from and to are the old and new positions.

rowContextMenu(var row, int index)

Emitted when a row is right-clicked; row is its data and index is its index.

dataChange(var rows, string action)

Emitted when table data changes; rows is the updated data and action identifies the operation.

expandChange(var row, bool expanded)

Emitted when a row expands or collapses; row is its data and expanded is its expansion state.

rowDoubleClicked(var row, int index)

Emitted when a row is double-clicked; row is its data and index is its index.

sortChanged(string prop, string order)

Emitted when the sort field or direction changes; prop is the field and order is the direction.

menuCommand(string command, var context)

Emitted when a table menu command runs; command is its name and context contains the current row, column, and related data.

validationFinished(bool valid, var errors)

Emitted after table validation; valid is the result and errors contains validation errors.

cellClicked(var row, var column, int index)

Emitted when a cell is clicked; row is the row data, column is the column definition, and index is the row index.

cellMouseLeft(var row, var column, int index)

Emitted when the pointer leaves a cell; the arguments identify its row and column.

operationFailed(string action, string message)

Emitted when a table operation fails; action is its name and message explains why.

cellContextMenu(var row, var column, int index)

Emitted when a cell is right-clicked; row is the row data, column is the column definition, and index is the row index.

editClosed(var row, var column, bool committed)

Emitted when cell editing ends; row and column identify the cell and committed indicates whether changes were committed.

cellMouseEntered(var row, var column, int index)

Emitted when the pointer enters a cell; the arguments identify its row and column.

cellValueChanged(var row, var column, var value)

Emitted when a cell value changes; row and column identify the cell and value is its new value.

currentChange(var currentRow, var oldCurrentRow)

Emitted when the current row changes; currentRow is the new row and oldCurrentRow is the previous row.

cellDoubleClicked(var row, var column, int index)

Emitted when a cell is double-clicked; row is the row data, column is the column definition, and index is the row index.

columnVisibilityChanged(string key, bool visible)

Emitted when column visibility changes; key identifies the column and visible is its visibility.

headerDragend(real newWidth, real oldWidth, var column)

Emitted after resizing a column; newWidth is the new width, oldWidth is the previous width, and column is the column definition.

Methods ​

SignaturePurpose
clearValidate()

Clear validation messages and state without changing current data.

setScrollTop(top)

Set the vertical scroll position top in pixels.

setScrollLeft(left)

Set the horizontal scroll position left in pixels.

getSelectionRows()

Return an array of the currently checked row data.

redo()

Redo the most recently undone table data operation.

removeSelectedRows()

Remove the currently checked rows.

undo()

Undo the most recent table data operation.

doLayout()

Refresh the table layout after container or column dimensions change.

getRecordset()

Return inserted, removed, and updated records relative to the source data.

remove(records)

Remove the rows specified by records.

insert(records)

Insert records at the beginning of the table.

moveRow(from, to)

Move a row from position from to position to.

pasteCellArea(text)

Paste text into the current cell range.

validate(records)

Validate the specified records, or table data when records is omitted; validationFinished provides the result.

exportText(options)

Return table data as export text using options.

copyCellArea(cut)

Copy the current cell range; cut also removes its contents.

moveColumn(from, to)

Move a column from position from to position to.

isRowSelected(entry)

Return whether the row represented by entry is checked.

insertAt(records, row)

Insert records at the position specified by row.

fillCellArea(sourceArea)

Fill the current selection with contents from sourceArea.

isExpanded(key)

Return whether the specified item is expanded.

findCells(query, options)

Find cells matching query using options.

importText(text, options)

Import text into the table using options.

openContextMenu(row, column, x, y)

Open a context menu at x and y for row and column.

cellValue(row, column)

Return the value of column in row.

replaceCells(query, replacement, options)

Find cells using query and options, then replace matches with replacement.

resetSource()

Use the current data as the new source data and clear undo and redo history.

clearSort()

Clear all sorting conditions.

saveLayout()

Save column order, widths, and visibility using layoutKey.

clearPreservedExpansions()

Clear cached expanded-row content to release unused expanded views.

clearSelection()

Clear the current selection.

pivot(rowFields, columnField, valueField, method)

Build pivot data using rowFields, columnField, and valueField with aggregation method.

cancelEdit()

Cancel the current edit and leave editing mode.

revertData()

Restore table data from the saved source data.

readClipboard()

Read text from the table clipboard provider.

setCellValue(row, prop, value, validateValue)

Set field prop in row to value; validateValue controls validation.

writeClipboard(text)

Write text to the table clipboard provider.

toggleGroup(key)

Toggle expansion of the group identified by key.

aggregate(prop, method, records)

Aggregate field prop in records using method.

setEditValue(column, value)

Set the pending value for column in the currently edited row.

updateKeyChildren(key, children)

Replace the children of the row identified by key with children.

setCurrentRow(row)

Set row as the current row.

printData(url, options)

Generate printable content using options and the output location url.

chartData(labelField, valueField, records)

Convert labelField and valueField in records into chart data.

selectRow(index)

Set the visible row at index as the current row.

scrollTo(left, top)

Scroll to the specified position, using horizontal and vertical coordinates or the supported scroll configuration.

isCellSelected(row, column)

Return whether the cell at row and column is selected.

exportData(url, options)

Export data to the file specified by url using options.

clearFilter(keys)

Clear filters for columns identified by keys, or all filters when omitted.

importData(url, options)

Import data from url using the import options.

setFilter(key, values)

Set filter values for the column identified by key.

setRadioRow(row)

Set row as the radio-selected row.

toggleAllSelection()

Toggle selection of all selectable rows.

resizeColumn(index, width, notify)

Set the width of column index to width; notify controls the resize notification.

restoreLayout()

Restore the column layout saved under layoutKey.

editCell(row, prop, initialValue)

Start editing field prop in row, optionally using initialValue.

setSorts(values)

Set multiple sorting conditions using values.

sort(prop, order)

Sort by field prop in direction order.

commitEdit()

Commit the current edit; invalid edits are not committed.

selectCell(rowIndex, columnIndex, extend, append)

Select the cell at rowIndex and columnIndex; extend grows the range and append adds a range.

setColumnVisible(key, visible)

Set visibility of the column identified by key to visible.

navigateCell(rows, columns, extend)

Move the current cell by relative rows and columns; extend grows the selection.

commitProxy(action, params)

Run the remote action configured in proxyConfig using params.

toggleRowSelection(row, selected, ignoreSelectable)

Set the checked state of row; omit selected to toggle, and use ignoreSelectable to bypass the selectable check.

toggleRowExpansion(row, expanded)

Set expansion of row; omit expanded to toggle.

Released under the MIT License. Third-party assets retain their own licenses.