Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex “三态”;扩大的&引用;“崩溃”;及;“半扩展”;树木控制_Apache Flex_Tree_Itemrenderer - Fatal编程技术网

Apache flex “三态”;扩大的&引用;“崩溃”;及;“半扩展”;树木控制

Apache flex “三态”;扩大的&引用;“崩溃”;及;“半扩展”;树木控制,apache-flex,tree,itemrenderer,Apache Flex,Tree,Itemrenderer,我想做的是做一个3状态树扩展 我有三个不同的“展开”“折叠”“半展开”图标,我想用它们来显示一个部分填充的树控件,其中所有节点都初始化为半展开状态,然后单击“半展开”图标,它从服务器获取数据,填充树并用“展开”图标打开该分支 我试图寻找它,但除了3状态复选框外,找不到任何接近它的东西,但不知道如何在3状态图标上使用它,因为树只能维持2个状态 提前感谢。三状态树控件有点不常见,因此可能有点混乱;考虑到即使是简单的三态复选框也相对较少,用户可能不习惯它们。也许这就是为什么你没有找到这样的树控件 因此

我想做的是做一个3状态树扩展

我有三个不同的“展开”“折叠”“半展开”图标,我想用它们来显示一个部分填充的树控件,其中所有节点都初始化为半展开状态,然后单击“半展开”图标,它从服务器获取数据,填充树并用“展开”图标打开该分支

我试图寻找它,但除了3状态复选框外,找不到任何接近它的东西,但不知道如何在3状态图标上使用它,因为树只能维持2个状态


提前感谢。

三状态树控件有点不常见,因此可能有点混乱;考虑到即使是简单的三态复选框也相对较少,用户可能不习惯它们。也许这就是为什么你没有找到这样的树控件

因此,也许你应该考虑使用一个不需要三态控制的替代设计。


例如,节点可以从折叠的节点开始。如果用户展开它,但还没有数据,则显示一个子节点,并显示文本“retrieving data…”(以及进度轮或其他进度指示器,如果可以),然后开始数据检索。当数据到达时,用实际数据替换此子节点

我认为您正在寻找的是所谓的延迟加载树。你可以在谷歌上搜索很多例子,但这是一个很好的例子

至于请求的可视部分(显示分支或节点状态的3个不同图标)-通过查看节点上的负载状态标志,可以使用自定义渲染器轻松处理该问题


这有帮助吗?

感谢BigWorld为延迟加载树提供了一个很好的解释。我已经完全按照正常行为做了。但这种显示部分树并仍然让用户打开扩展树的特殊行为让我陷入了循环。我尝试在item renderer中解决这个问题,但过了一段时间后,我变得非常困惑:-(无论如何,感谢您的时间。我想确保我正确理解您关于部分树的内容。假设您有一个打开的节点,其中显示了2个项(即使数据库中有10个项),并执行一些操作(例如双击父节点)它加载并显示额外的8个子节点,对吗?是的,我希望在每个节点上显示处于展开状态的所有节点,并在每个节点上显示“半展开(如空心三角形)”图标,仅显示作为层次结构一部分的文件夹(在工作流2中),并且当用户单击时(如展开树中的单击),这是正确的任何父级的图标,父级可以获取所有子文件夹(只有一级深)并转到正常的“展开”状态,然后该父节点将开始正常工作。@karora:好的,那么提醒我您现在在哪里-当前阻碍您的是什么?听起来您已经可以动态加载数据,并且已经可以显示初始节点,所以现在只需检测事件(比如双击)并加载额外的数据。对吗?嗨,Oefe,感谢您的快速响应。我已经使用了您建议的替代设计。但我有两个工作流:一个是树的正常扩展/折叠,其中包含服务器按需填充的节点。树由一个子节点初始化,该子节点位于层次结构的深处。对于第二种情况我希望用一个不同的“半扩展”图标来显示部分层次结构,并显示所有父文件夹,从而提示用户仅完全打开那些用户希望获得更多数据的文件夹,然后该特定文件夹开始按照标准的“扩展”/“折叠”图标。为什么要这样做?性能?您是否关心服务器上的负载,或客户端上的响应时间,或两者都关心?如果服务器负载不是问题,您仍然可以使用“检索数据…”方法。从只显示初始节点路径上的节点的树开始。然后逐个或并行地检索每个祖先节点的附加子节点。该方法的一个可能缺点是树经常更改,这可能会令人恼火。嗨,Oefe,这不是因为服务器上的性能或负载。这是这是其中一个工作流(请参见上面的工作流编号2),我需要在目录树中显示一个文件(从服务器获取)。因此,首先,我有一个包含文件夹路径的文件,我想将其显示为部分打开的树,然后用户应该能够按需打开任何分支,作为正常工作流。那么,为什么要使用这种不常见的解决方案?什么是如此重要,以至于它证明了非标准行为的合理性?嗨,Oefe,我需要此解决方案,因为我有一个要求从我们的设计人员那里获得的信息,使我们能够在为已知目录层次结构的叶节点调用视图时显示部分树。这样,我们可以直接使用部分层次结构显示树,然后根据需要扩展中间节点。