ETree 树形控件
示例与代码
勾选、半选、过滤与拖放
基础用法
基础用法
属性
accordionbool手风琴模式,同一层最多展开一个节点或折叠项。
falseallowDragvar拖动前检查函数,接收节点并返回是否允许拖动。
nullallowDropvar放置检查函数,接收拖动节点、目标节点和放置位置。
nullautoExpandParentbool展开或定位节点时自动展开祖先。
truecheckOnClickLeafbool点击叶子节点时切换勾选。
falsecheckOnClickNodebool点击任意节点时切换勾选。
falsecheckStrictlybool选中状态不随父子节点联动。
falsecheckedKeysvar已勾选节点或表格行的唯一键数组。
[]currentKeystring当前选中节点的唯一键。
""defaultExpandAllbool初始展开所有节点或行。
falsedraggablebool是否支持拖动;具体拖动对象由当前组件决定。
falsedraggingKeystring当前被拖动节点的唯一键。
""emptyDelegateComponent自定义空数据状态的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullemptyTextstring没有数据时的提示文字。
随当前语言变化enabledbool是否允许交互;false 时控件禁用。
trueexpandOnClickNodebool点击节点文字时展开或收起。
falseexpandedKeysvar已展开节点、表格行或菜单项的唯一键数组。
[]filterNodeMethodvar节点过滤函数 (query, node),返回是否保留节点。
nullfilterValuestring当前过滤或搜索关键词。
""heightreal组件尺寸,单位为像素;可绑定父布局尺寸。
implicitHeighthighlightCurrentbool高亮当前选中节点或行。
trueiconSourceint组件使用的图标。
EIcons.*
0(无图标)
EIcons.CHEVRON_RIGHTindentint树节点或菜单子项每级的缩进,单位为像素。
18itemHeightint菜单项、数据行或表头行的高度,单位为像素。
34lazybool按需创建内容或加载数据;数据控件使用 load / lazyLoad。
falseloadvar懒加载回调,接收节点与 resolve;使用 resolve(children) 提供子节点。
nullloadedChildrenvar按节点键缓存的已加载子节点对象。
动态绑定loadingKeysvar正在懒加载的节点或行键数组。
[]modelvar树节点数据数组,可通过 props 和 nodeKey 自定义字段映射。
字段:
id, label, children
disabled, isLeaf
[]nodeDelegateComponent自定义树或级联节点的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。
nullnodeKeystring唯一标识字段;稳定且唯一的键可保持选择、展开与缓存状态。
"id"propsvar数据字段映射及节点行为配置对象。
字段:
label, children, disabled
isLeaf
({})showCheckboxbool为树节点显示勾选框。
falsevisiblebool是否显示组件。
truewidthreal组件尺寸,单位为像素;可绑定父布局尺寸。
implicitWidthallNodesvar只读树模型中全部节点的展平数组。
由运行时计算checkSummaryvar只读树节点勾选与半选状态的汇总。
由运行时计算currentNodevar只读当前选中树节点的数据对象。
由运行时计算halfCheckedKeysvar只读处于半选状态的树节点键数组。
由运行时计算visibleNodesvar只读展开与过滤后实际可见的树节点。
由运行时计算信号
nodeDragStarted(var node)开始拖动节点时触发,node 为被拖动的节点。
checked(var node, var state)节点勾选变化时触发,node 为节点,state 包含勾选结果。
loadFailed(var node, var error)节点异步加载失败时触发,node 为节点,error 为错误信息。
nodeDragLeft(var node, var target)拖动离开目标节点时触发,node 为被拖动节点,target 为离开的节点。
nodeDragOver(var node, var target)在目标节点上拖动时触发,node 为被拖动节点,target 为目标节点。
nodeSelected(var node, string key)选中节点时触发,node 为节点数据,key 为节点标识。
currentChanged(var node, string key)当前节点变化时触发,node 为当前节点,key 为节点标识。
nodeContextMenu(var node, var mouse)右击节点时触发,node 为节点,mouse 为鼠标事件。
nodeDragEntered(var node, var target)拖动进入节点时触发,node 为被拖动节点,target 为目标节点。
nodeExpanded(string key, bool expanded)节点展开状态改变时触发,包含节点标识和 expanded 状态。
nodeDropped(var node, var target, string position)节点完成放置时触发,node 为被拖动节点,target 为目标节点,position 为放置位置。
nodeDragEnded(var node, var target, string position)节点拖动结束时触发,node 为被拖动节点,target 为目标节点,position 为放置位置。
checkChanged(var node, bool checked, bool halfChecked)节点勾选状态变化时触发,node 为节点,checked 为是否勾选,halfChecked 为是否半选。
方法
getCurrentKey()返回当前节点的标识。
getCurrentNode()返回当前节点的数据对象。
getNode(key)返回 key 对应的节点条目,包含节点数据及层级信息。
getHalfCheckedKeys()返回所有半选节点的标识。
toggle(key)切换当前展开或选中状态;需要标识时传入目标项的标识。
isLoading(key)判断 key 对应节点是否正在加载。
isChecked(key)判断指定项目是否勾选,返回布尔值。
isHalfChecked(key)判断 key 对应节点是否为半选状态。
findNode(key)返回 key 对应的节点数据;找不到时返回 null。
remove(node)删除 node 对应的节点。
filter(value)将 value 作为树节点筛选文字。
setCurrentNode(node, expandParents)设置当前节点;expandParents 控制是否展开其祖先节点。
isExpanded(key)判断指定项目是否展开,返回布尔值。
setCheckedNodes(nodes)将 nodes 指定的节点集合设为勾选结果。
updateKeyChildren(key, children)将 key 对应节点的子节点替换为 children。
insertAfter(data, reference)在 reference 节点之后插入 data。
insertBefore(data, reference)在 reference 节点之前插入 data。
getHalfCheckedNodes()返回所有半选节点的数据对象。
getCheckedKeys(leafOnly)返回已勾选节点的标识;leafOnly 为 true 时仅包含叶子节点。
setCurrentKey(key, expandParents)按 key 设置当前节点;expandParents 控制是否展开其祖先节点。
select(key)选择给定索引或标识对应的项目。
getCheckedNodes(leafOnly, includeHalfChecked)返回已勾选节点;leafOnly 限制为叶子节点,includeHalfChecked 控制是否包含半选节点。
append(data, parentNode)在 parentNode 下追加 data 节点。
moveNode(key, targetKey, position)将 key 对应节点移动到 targetKey 附近,position 指定相对位置。
setCheckedKeys(keys, leafOnly)按 keys 设置勾选结果;leafOnly 为 true 时仅处理叶子节点。
setExpanded(key, expanded)设置 key 对应节点的展开状态 expanded。
loadNode(key)请求加载 key 对应节点的子节点。
setChecked(key, value, deep)设置 key 对应节点的勾选状态 value;deep 控制是否同时处理后代节点。