有时候我们想要对Tree进行拖拽操作,把一个节点从父节点拖拽到另一个节点下。但是Tree本身不提供自动展开节点功能。假设Tree的结构是这样的:
-parent1
-item1
-item2
-parent2
-item3
-item4
如果我想要把 item4 拖拽到parent1下面,就要先把 parent1和parent2都展开,比较麻烦,下面是自动展开的解决方案:
private function dragOverHandler(event:DragEvent):void
{
var currNodeOver : TreeItemRenderer= TreeItemRenderer(event.currentTarget.indexToItemRenderer(event.currentTarget.calculateDropIndex(event)));
if (currNodeOver !=null)
{
if(Tree(event.currentTarget).dataDescriptor.isBranch(currNodeOver.data) == true)
{
if (Tree(event.currentTarget).isItemOpen(currNodeOver.data)==false)
Tree(event.currentTarget).expandItem(currNodeOver.data,true,true);
}
}
}
然后把 Tree 的 dragOver 设定为 dragOverHandler ,dragOver=”dragOverHandler(event)” 。然后就OK了。
转自:http://www.zhuoqun.net/html/y2008/989.html 04月 14th, 2008 — Dreamer
分享到:
相关推荐
IView中的`Tree`组件提供了多种交互方式,包括展开/折叠节点、选择节点以及自定义操作等。 实现节点拖拽功能需要结合Vue的响应式特性与HTML5的拖放API(Drag and Drop API)。首先,在`Tree`节点上设置`draggable`...
以前有许多人需要将 tree 的节点拖拽到其他控件中的问题,前段时间已经解决了,现在也将它的源代码贡献上来。 这个树的数据是静态的,没有做动态的,而且树节点的拖拽也没有做过多的处理,如果要知道怎么样做树...
`可自定义树节点的Tree组件`是一个专为满足这种需求而设计的功能强大的工具。它允许开发者根据具体项目的需求来定制树形结构的节点展示,提升用户体验并优化数据管理。在本文中,我们将深入探讨这个组件的工作原理、...
3. **拖拽功能**:用户可以通过鼠标拖动节点改变树形结构,这种功能在组织结构、任务分配或者文件管理场景下非常实用,允许用户自由调整数据层次关系。 4. **增、删、改功能**:组件支持添加新的子节点、删除节点...
在本文中,我们将详细探讨如何在Flex的Tree组件中实现节点的拖放操作,并且限制可拖动的节点以及拖动的目标位置。 首先,我们需要了解Flex Tree组件的基本用法。Tree组件用于显示层次结构的数据,每个节点代表数据...
el-tree创建结构线,并且可拖动
可以实现节点的自由拖动,包含所有的源码和使用方法,适用于一些权限管理的项目。可将拖动后的节点顺序保存在数据库中.上传的为一个网站,只需在不低于Vs2005版本的开发环境上运行即可演示效果,.有意志请加QQ:...
在这个场景中,我们讨论的是如何使用`YUI3`实现一个特殊的组件——一个可展开的`Overlay`,它内部展示了一个树形结构(Tree),并且树节点支持拖放(Drag and Drop)功能。 首先,`Overlay`是`YUI3`中的一个基础...
"VC Tree树状节点拖动示例"是一个关于如何在VC6.0环境下实现`CTreeCtrl`树形控件的节点拖放功能的教学资源,它包含实例源码和图文教程,可以帮助开发者了解和学习这一功能的实现。 拖放操作在用户界面上是一种常见...
此外,`el-tree`还提供了其他实用方法,如`getCheckedNodes()`返回选中节点的对象数组,`setCheckedKeys()`可以设置选中节点,`expandAll()`和`collapseAll()`用于展开或折叠所有节点。这些方法配合事件监听和数据...
在Swing中,我们可以利用JTree创建一个可拖放(Drag and Drop)的树状结构,使得用户能够通过简单的拖拽操作来移动或插入节点。这种功能在数据组织和展示时非常实用,例如在文件系统管理、项目管理或复杂数据结构的...
"TreeCtrl拖拽"是一个特定的功能,允许用户通过鼠标拖动节点来重新组织树状结构,提供更直观的操作体验。 在Windows SDK中,实现TreeCtrl的拖放功能主要涉及以下几个关键步骤和知识点: 1. **启用拖放支持**:首先...
在IT领域,拖拽功能是用户界面中常见的一种交互方式,尤其在数据可视化和管理工具中,例如ExtJS的树形组件(Tree)。本项目主要关注如何在完成拖拽操作后,更新并保存树节点的新顺序。ExtJS是一个强大的JavaScript库...
本文将深入探讨在使用ZTree时遇到的一个问题:“BeforeDrop”事件中设置拖拽节点隐藏后,导致拖拽后的节点也一起隐藏的问题。 首先,我们需要理解ZTree的`BeforeDrop`事件。这个事件在节点即将被拖放到新位置之前...
`dragMoveEvent()`处理拖动过程中的事件,而`dropEvent()`则在释放鼠标时执行,进行实际的数据转移。 3. **数据传输** 在拖放过程中,数据通常通过`QMimeData`对象传递。你需要创建一个`QMimeData`实例,并在拖放...
你可以设置初始状态、决定是否显示图标、调整节点展开和折叠的动画效果等。此外,jsTree 使用 CSS 进行样式控制,这意味着你可以轻松地改变树的视觉样式以适应你的网站设计。 **API 与事件** jsTree 提供了一套...
3. **数据处理**:当用户从datagrid拖放一行到tree时,需要处理数据的转移。通常,你需要获取被拖放行的数据,然后将其添加为tree的新节点。这可能涉及到后台接口的调用,以便将数据保存在正确的位置。 4. **事件回...
"拖拽节点和树上节点拖拽移动.zip"这个压缩包文件显然包含了一个关于如何在Windows应用程序中实现拖放功能的示例代码,特别是针对VC++编程环境。在Windows编程中,MFC(Microsoft Foundation Classes)库被广泛用于...
以上代码实现了基本的拖放功能,允许用户在TreeView控件中拖动节点并将其放置在其他节点的下面。注意,这里的实现仅支持在同层级之间移动节点,不包括跨层级的操作。如果需要支持跨层级的拖放,你需要在`DragDrop`...
删除节点同样涉及到修改数据源,但还需要处理其父节点的状态,因为删除操作可能会影响父节点的展开状态。以下是删除节点的基本流程: 1. **修改数据源**:找到要删除的节点,将其从数据源中移除。例如,可以使用`...