ETable 表格
示例与代码
列设置、多选、筛选与固定列
分组表头、树形行与懒加载
展开详情与单元格合并
基础用法
基础用法
属性
appendDelegateComponent自定义输入附加区或列表尾部的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullborderbool是否显示边框。
falseborderModestring表格边框模式;default 沿用 border 设置。
default
full
inner
outer
none
"default"cellAreavar当前选中区域在显示行列中的索引范围。
字段:
startRow, startColumn, endRow
endColumn
nullcellAreasvarCtrl 多选时保留的其他区域;复制粘贴使用当前 cellArea。
[]cellDelegateComponent自定义表格单元格或日期格的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullcellStylevar行或单元格样式对象,也可传入接收行上下文的函数。
nullclipboardProvidervar剪贴板读写接口,默认使用系统剪贴板。
text()
setText(value)
nullcollapsedGroupKeysvar已折叠的分组标识数组;使用 toggleGroup() 切换。
[]columnDraggablebool显示表头拖动区域,允许在同一固定分区和表头分组内调换列序。
falsecolumnOrdervar按 columnKey/prop 标识的列顺序,固定列分区仍保持有效。
[]columnSettingsTextstring表格列设置入口文字。
EControlConfig.textFor(control, "Columns", ELocale.texts)columnWidthsvar按列键保存的显式列宽,单位为像素。
({})columnsvar列定义数组,配置列内容、布局与交互。
常用字段:
prop、label、width、minWidth
sortable、fixed、formatter
type、children、filters
[]currentColumnIndexint当前活动列在可见列中的索引。
-1currentPageint当前页,从 1 开始;切页清除当前区域并返回该页顶部。
1currentRowIndexint当前行在原始 model 中的索引。
-1:未选择
0 起:原始行索引
-1defaultExpandAllbool初始展开所有节点或行。
falsedefaultSortvar初始排序对象,如 {prop: "score", order: "descending"}。
字段:
prop, order
nulldraggedColumnIndexint内部正在拖动的可见列索引。
-1draggedRowIndexint内部正在拖动的模型行索引。
-1editConfigvar编辑配置 {trigger: dblclick/click/manual, mode: cell/row, activeMethod: function}。
trigger: "click" / "dblclick"
mode: "cell" / "row"
activeMethod: function
({trigger: "dblclick", mode: "cell"})editRulesvar按字段配置 EFormItem 校验规则;支持必填、类型、范围、正则及异步 validator。
({})editValuevar当前活动编辑字段的草稿值,commitEdit() 校验后写入模型。
nulleditValuesvar行编辑模式下按字段保存的草稿值;使用 setEditValue() 修改。
({})editablebool允许配置了 editable/editRender/editDelegate 的单元格编辑。
falseeditingCellvar当前正在编辑的单元格上下文,没有编辑时为空。
字段:
row, key, column
nullemptyDelegateComponent自定义空数据状态的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullemptyTextstring没有数据时的提示文字。
EControlConfig.textFor(control, "NoData", ELocale.texts)enabledbool是否允许交互;false 时控件禁用。
trueexpandDelegateComponent自定义表格展开行的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullexpandRowKeysvar已展开节点、表格行或菜单项的唯一键数组。
[]expansionHeightsvar展开行内容高度缓存,按行键保存。
new Map()filterValuesvar按列键组织的筛选值数组。
({})fitbool让表格列宽填满可用宽度。
truegeneratedRowIdint内部新增行标识计数器。
0groupFieldsvar分组字段数组,支持多级分组;树数据使用原有树展开方式。
[]headerDelegateComponent自定义头部内容或表头的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullheaderHeightint菜单项、数据行或表头行的高度,单位为像素。
44heightreal组件尺寸,单位为像素;可绑定父布局尺寸。
implicitHeighthighlightCurrentColumnbool高亮当前活动列。
falsehighlightCurrentRowbool高亮当前选中节点或行。
truehighlightHoverColumnbool高亮鼠标悬停的列。
falsehistoryLimitint最多保留的撤销快照数量;0 关闭历史记录。
100hoveredColumnIndexint内部当前悬停的可见列索引。
-1indentint树节点或菜单子项每级的缩进,单位为像素。
16internalMutationbool内部模型写入标识;避免将编辑结果重新记录为原始数据。
falsekeepSourcebool启用 revertData() 将数据回退到原始快照。
falselayoutKeystring列布局持久化键;非空时加载保存的顺序、宽度和显隐状态。
""lazybool按需创建内容或加载数据;数据控件使用 load / lazyLoad。
falselazyChildrenvar按节点键缓存的已加载子节点对象。
({})loadvar懒加载回调,接收节点与 resolve;使用 resolve(children) 提供子节点。
nullloadingbool是否显示表格加载遮罩;代理请求自动管理该状态。
falseloadingKeysvar正在懒加载的节点或行键数组。
[]maxHeightint最大显示高度,单位为像素;0 表示不额外限制。
0mergeCellsvar显式表体合并规则 {row, col, rowspan, colspan};索引对应当前视图。
字段:
row, col, rowspan
colspan
[]minHeightint隐式高度的下限,单位为像素。
0modelvar行对象数组;重新赋值数组可通知 QML 更新。树形行由 treeProps 指定 children 字段。
[]modelRevisionint内部数据或几何变化版本,用于使相关绑定重新计算。
0multiSortbool允许表头点击累积多个排序字段。
falsepageSizeint每页条数,小于 1 时实际按 1 处理。
10pageSizesvar内置分页器的可选每页条数。
[10, 20, 50, 100]paginationbool显示并启用内置分页;代理模式由 query 返回当前页。
falsepreserveExpandedContentbool折叠行后保留已创建的展开内容。
falsepreservedExpansionsvar需要保留的展开内容实例缓存。
new Map()previousCurrentRowvar上一次当前行对象,用于发出新旧行变化事件。
nullproxyConfigvar数据代理配置 query/autoLoad/remoteSort/remoteFilter 和自定义动作;query 返回数组或 {rows, total}。
字段:
query, autoLoad, remoteSort
remoteFilter
({})queryErrorstring最近一次代理查询失败的错误文本。
""queryFormvar传递给 proxyConfig.query 的查询表单对象。
({})queryRevisionint内部异步查询版本,过期响应不再应用。
0radioKeyvar单选行的 rowKey;未选择时为 undefined。
undefinedrangeSelectionbool允许拖动、Shift 范围选择、Ctrl 多区域选择及拖动填充柄。
falseredoStackvar内部重做快照,不建议直接修改;使用 redo()。
[]resettingPagebool内部代理重载时的页码复位状态,避免重复查询。
falserowDraggablebool显示行拖动手柄;树、分组和排序视图下不允许拖动行序。
falserowExpandablevar判断行是否允许展开的回调。
nullrowHeightint菜单项、数据行或表头行的高度,单位为像素。
44rowKeyvar唯一标识字段;稳定且唯一的键可保持选择、展开与缓存状态。
""rowStylevar行或单元格样式对象,也可传入接收行上下文的函数。
nullselectOnIndeterminatebool半选状态下点击全选时选择全部行。
trueselectionCachevar表格已选行缓存,用于跨模型更新保留选择。
[]selectionKeysvar已勾选节点或表格行的唯一键数组。
[]showColumnSettingsbool显示表格列显隐设置入口。
falseshowHeaderbool是否显示头部区域。
trueshowOverflowTooltipbool单元格文字溢出时显示提示。
EControlConfig.optionFor( control, "table", "showOverflowTooltip", false )showSummarybool在表格底部显示汇总行。
falseshowToolbarbool显示增删、校验、历史、查找、文件、打印和图表工具栏。
falsesortOrderstring表格排序方向。
ascending
descending
空字符串(取消排序)
""sortPropstring排序字段名。
""sortsvar多列排序数组,每项为 {prop, order},order 为 ascending 或 descending。
字段:
prop, order
[]sourceRowsvar原始数据快照;用于 keepSource、变更集和回退。
[]spanMethodvar合并单元格回调,返回 [rowspan, colspan] 或相应对象。
nullstripebool表格使用间隔斑马纹背景。
falsesumTextstring汇总行首列的文字。
EControlConfig.textFor(control, "Total", ELocale.texts)summaryMethodvar汇总回调,接收列和数据并返回各列汇总值。
nulltoolbarDelegateComponent自定义工具栏 Component,加载时传入 table。
nulltooltipEffectstring单元格溢出提示的视觉主题。
"light" / "dark"
EControlConfig.optionFor(control, "table", "tooltipEffect", "dark")tooltipFormattervar溢出提示格式化函数,接收单元格上下文。
EControlConfig.optionFor(control, "table", "tooltipFormatter", null)tooltipOptionsvar表格溢出提示的配置对象。
EControlConfig.optionFor(control, "table", "tooltipOptions", ({}))totalint数据代理返回的服务端总记录数。
0treePropsvar数据字段映射及节点行为配置对象。
字段:
children, hasChildren, checkStrictly
({ children: "children", hasChildren: "hasChildren", checkStrictly: true })typingEditbool内部直接键入编辑状态;控制初始文本选择。
falseundoStackvar内部撤销快照,不建议直接修改;使用 undo()。
[]validatingbool当前是否正在执行校验;校验期间避免并发写入。
falsevalidationErrorsvar编辑校验失败的错误条目数组。
字段:
row, column, message
[]virtualColumnsbool列数达到 24 时按水平视口加载列;表体合并时保留全部列以保证跨度正确。
truevisiblebool是否显示组件。
truewidthreal组件尺寸,单位为像素;可绑定父布局尺寸。
implicitWidthaccentColorcolor只读根据主题、当前状态及自定义配色确定的实际颜色。
由运行时计算allColumnsvar只读展开分组后的全部叶子列定义。
由运行时计算allRowsvar只读表格原始行及树形子行的展平数组。
由运行时计算allSelectedbool只读是否已选中全部可选表格行。
由运行时计算borderColorcolor只读边框颜色。
由运行时计算canRedobool只读当前是否存在可重做的操作。
由运行时计算canUndobool只读当前是否存在可撤销的操作。
由运行时计算checkedRowCountint只读当前已勾选的可选行数。
由运行时计算columnLayoutvar只读计算后的列宽及位置数据。
由运行时计算columnModelvar只读经过显隐筛选和固定列排序的表格列定义。
由运行时计算columnTreevar只读表格分组列的树形结构及层级信息。
由运行时计算currentEntryvar只读当前选中行的展平行条目,包含原模型索引。
由运行时计算currentRowvar只读当前选中表格行的数据对象;未选择时为 null。
由运行时计算displayRowsvar只读经过筛选和排序后用于渲染的表格行。
由运行时计算effectiveHeaderHeightint只读表格实际表头或行高,包含层级及最小值处理。
由运行时计算effectivePageSizeint只读至少为 1 的实际每页条数。
由运行时计算effectiveRowHeightint只读表格实际表头或行高,包含层级及最小值处理。
由运行时计算effectiveTotalint只读本地模式使用处理后的行数;代理模式使用 total。
由运行时计算hasTreebool只读表格模型是否包含树形子行。
由运行时计算hoverColorcolor只读悬停背景颜色。
由运行时计算indeterminatebool只读显示不确定进度动画或读取半选状态。
由运行时计算mergedRowsvar只读表格合并单元格计算出的行几何数据。
由运行时计算pageCountint只读按总条数计算的总页数,至少为 1。
由运行时计算pagerHeightint只读内置分页区域的实际高度。
由运行时计算processedRowsvar只读完成筛选、排序和分组后,分页前的视图行。
由运行时计算radioRowvar只读当前单选行对象,没有单选时为 null。
由运行时计算renderColumnIndexesvar只读当前视口需要加载的可见列索引,包含固定列。
由运行时计算rowCountint只读数据行数或水印布局的列/行数量,由模型或布局计算。
由运行时计算scrollLeftreal只读当前水平或垂直滚动位置,单位为像素。
由运行时计算scrollTopreal只读当前水平或垂直滚动位置,单位为像素。
由运行时计算selectableRowsvar只读当前可参与多选的表格行列表。
由运行时计算selectedColorcolor只读根据主题、当前状态及自定义配色确定的实际颜色。
由运行时计算selectedRowsvar只读当前选中表格行的原始数据对象数组。
由运行时计算selectionColumnvar只读表格中的多选列定义。
由运行时计算sortColumnvar只读表格当前排序列定义。
由运行时计算stripeColorcolor只读根据主题、当前状态及自定义配色确定的实际颜色。
由运行时计算summaryValuesvar只读表格汇总行各列的实际显示值。
由运行时计算surfaceColorcolor只读根据主题、当前状态及自定义配色确定的实际颜色。
由运行时计算tableWidthreal只读表格滚动内容的总宽度。
由运行时计算toolbarHeightint只读表格列设置工具栏的实际高度。
由运行时计算localizedTextsvar只读当前语言的本地化文本;随语言切换更新。
ELocale.texts信号
radioChange(var row)单选行变化时触发,row 为当前单选行。
sortChange(var sort)排序条件变化时触发,sort 为当前排序条件。
selectAll(var selection)切换全选时触发,selection 为当前勾选行集合。
filterChange(var filters)筛选条件变化时触发,filters 为当前筛选条件。
headerClicked(var column)点击列头时触发,column 为列配置。
queryCompleted(var result)远程查询完成时触发,result 为查询结果。
headerContextMenu(var column)右击列头时触发,column 为列配置。
rowClicked(var row, int index)点击数据行时触发,row 为行数据,index 为行索引。
rowReordered(int from, int to)行排序变化时触发,from 和 to 为原位置和目标位置。
select(var selection, var row)切换单行勾选时触发,selection 为勾选行集合,row 为本次操作的行。
selectionChange(var selection)勾选行集合变化时触发,selection 为当前勾选行。
cellAreaChangedByUser(var area)用户改变单元格选区时触发,area 为当前选区。
editStarted(var row, var column)开始编辑单元格时触发,row 为行数据,column 为列配置。
columnReordered(int from, int to)列排序变化时触发,from 和 to 为原位置和目标位置。
rowContextMenu(var row, int index)右击数据行时触发,row 为行数据,index 为行索引。
dataChange(var rows, string action)表格数据变化时触发,rows 为更新后的数据,action 为操作名称。
expandChange(var row, bool expanded)展开行状态变化时触发,row 为行数据,expanded 表示是否展开。
rowDoubleClicked(var row, int index)双击数据行时触发,row 为行数据,index 为行索引。
sortChanged(string prop, string order)排序字段或方向变化时触发,prop 为字段,order 为排序方向。
validationFinished(bool valid, var errors)表格校验结束时触发,valid 表示是否通过,errors 为错误集合。
cellClicked(var row, var column, int index)点击单元格时触发,row 为行数据,column 为列配置,index 为行索引。
cellMouseLeft(var row, var column, int index)鼠标离开单元格时触发,参数标识对应行和列。
operationFailed(string action, string message)表格操作失败时触发,action 为操作名,message 为失败原因。
cellContextMenu(var row, var column, int index)右击单元格时触发,row 为行数据,column 为列配置,index 为行索引。
editClosed(var row, var column, bool committed)结束单元格编辑时触发,row 和 column 标识单元格,committed 表示是否提交。
cellMouseEntered(var row, var column, int index)鼠标进入单元格时触发,参数标识对应行和列。
cellValueChanged(var row, var column, var value)单元格值变化时触发,row 和 column 标识单元格,value 为新值。
currentChange(var currentRow, var oldCurrentRow)当前行变化时触发,currentRow 为新行,oldCurrentRow 为原行。
cellDoubleClicked(var row, var column, int index)双击单元格时触发,row 为行数据,column 为列配置,index 为行索引。
columnVisibilityChanged(string key, bool visible)列显示状态变化时触发,key 为列标识,visible 表示是否显示。
headerDragend(real newWidth, real oldWidth, var column)拖动调整列宽结束时触发,newWidth 为新宽度,oldWidth 为原宽度,column 为列配置。
方法
clearValidate()清除校验提示和校验状态,不修改当前数据。
setScrollTop(top)设置纵向滚动位置 top,单位为像素。
setScrollLeft(left)设置横向滚动位置 left,单位为像素。
getSelectionRows()返回当前勾选行的数据数组。
redo()重做最近一次撤销的表格数据操作。
removeSelectedRows()删除当前勾选的数据行。
undo()撤销最近一次表格数据操作。
doLayout()重新计算表格布局,适用于容器或列尺寸变化后。
getRecordset()返回相对原始数据的新增、删除和修改记录。
remove(records)删除 records 指定的数据行。
insert(records)在表格开头插入 records 指定的数据行。
moveRow(from, to)将数据行从 from 移动到 to。
pasteCellArea(text)将 text 粘贴到当前单元格选区。
validate(records)校验 records 指定的数据行;省略 records 时校验表格数据,结果通过 validationFinished 提供。
exportText(options)按 options 将表格数据转换为可导出的文本并返回。
copyCellArea(cut)复制当前单元格选区;cut 为 true 时剪切选区内容。
moveColumn(from, to)将列从 from 移动到 to。
isRowSelected(entry)判断 entry 对应的数据行是否勾选。
insertAt(records, row)在 row 指定的位置插入 records。
fillCellArea(sourceArea)使用 sourceArea 的内容填充当前选区。
isExpanded(key)判断指定项目是否展开,返回布尔值。
findCells(query, options)按 query 和 options 查找匹配的单元格。
importText(text, options)按 options 将 text 导入表格。
openContextMenu(row, column, x, y)在 x、y 处打开菜单,并将 row、column 作为菜单上下文。
cellValue(row, column)读取 row 对应行中 column 指定字段的值。
replaceCells(query, replacement, options)按 query 和 options 查找单元格,并用 replacement 替换匹配内容。
resetSource()将当前数据记录为新的原始数据,并清空撤销与重做历史。
clearSort()清除所有排序条件。
saveLayout()保存当前列顺序、列宽和显隐配置,使用 layoutKey 作为保存标识。
clearPreservedExpansions()清除缓存的展开行内容,释放不再使用的展开视图。
clearSelection()清除当前选择。
pivot(rowFields, columnField, valueField, method)按 rowFields、columnField 和 valueField 生成透视数据,method 指定聚合方式。
cancelEdit()取消当前编辑并退出编辑状态。
revertData()将表格数据恢复到保存的原始数据。
readClipboard()读取表格剪贴板提供器中的文字。
setCellValue(row, prop, value, validateValue)设置 row 中 prop 字段的值;validateValue 控制是否同时校验。
writeClipboard(text)将 text 写入表格剪贴板提供器。
toggleGroup(key)切换 key 对应分组的展开状态。
aggregate(prop, method, records)对 records 中的 prop 字段进行 method 指定的聚合。
setEditValue(column, value)设置当前编辑行中 column 对应列的待提交值。
updateKeyChildren(key, children)将 key 对应行的子节点更新为 children。
setCurrentRow(row)将 row 设为当前行。
printData(url, options)按 options 生成打印内容,并使用 url 指定的输出位置。
chartData(labelField, valueField, records)将 records 中的 labelField 和 valueField 转为图表数据。
selectRow(index)将 index 对应的可见行设为当前行。
scrollTo(left, top)滚动到指定位置;参数为横向和纵向位置,或组件支持的滚动配置。
isCellSelected(row, column)判断 row、column 指定的单元格是否位于选区中。
exportData(url, options)按 options 将数据导出到 url 指定的文件。
clearFilter(keys)清除 keys 指定列的筛选;省略时清除全部筛选。
importData(url, options)从 url 指定的文件导入数据,options 配置导入方式。
setFilter(key, values)设置 key 对应列的筛选值 values。
setRadioRow(row)将 row 设为单选行。
toggleAllSelection()切换所有可选择行的全选状态。
resizeColumn(index, width, notify)将 index 对应列宽改为 width;notify 控制是否发出尺寸变化通知。
restoreLayout()恢复 layoutKey 对应的列布局。
editCell(row, prop, initialValue)开始编辑 row 的 prop 字段,initialValue 可指定初始编辑值。
setSorts(values)设置多字段排序条件 values。
sort(prop, order)按 prop 字段和 order 指定的方向排序。
commitEdit()提交当前编辑;校验不通过时不会提交。
selectCell(rowIndex, columnIndex, extend, append)选择 rowIndex、columnIndex 对应单元格;extend 扩展选区,append 追加选区。
setColumnVisible(key, visible)设置 key 对应列的显示状态 visible。
commitProxy(action, params)执行 proxyConfig 配置的 action 远程操作,params 为请求参数。
toggleRowSelection(row, selected, ignoreSelectable)设置 row 的勾选状态;省略 selected 时切换状态,ignoreSelectable 可跳过可选判断。
toggleRowExpansion(row, expanded)设置 row 是否展开;省略 expanded 时切换展开状态。