Tree图全功略
2008-01-05 09:54:36 来源:WEB开发网Tree型结构,Tree图不管在哪个领域都是一个比较吃香的东东。在自己的网站或项目中有一个tree型图或tree型结构的权限(或角色,和数据库设计相关),总能有那么一点点成就感。^_^
这篇文章就把我自己在这方面应用的实践整理一下拿出来。为您具体介绍了在Tree有关方面应用的完整实践。
实例如下:
左边的tree图的实现方式是通过javascript+jsp实现。假如是为了实现逻辑上的tree结构的维护,采用的是xml解决方案。
现在这里说一下,Javascript+jsp的表现层的实现。这里的javascript并不是唯一的选择,可以在网上下到类似的javascript(究竟是共享的嘛。:) ).点这里可以下载相关代码.
其中的test.htm是javascript例子代码:
"d.add(3,0,'技术与方案','admin.php?module=article&action=catelist&cid=3','','_blank');
"中的"3"是当前节点,"0"是父节点,"技术与方案"是tree上显示的节点名,"admin.php?......"指向的url."_blank"是指向的窗口。
从上可以看出,这个javascript已经把tree图实现的大部分工作已经做好了。只要我们传入对应的数据就可以了。
首先是数据库结构。从上可以看出,有节点名,节点id,父节点id,节点url,节点target,还可以有个节点状态(比如是激活或休眠,很常用用一种用法),当然还可以有其它属性,那就要根据项目的需要了。其实只要抓住一点,有唯一节点id和唯一父节点id就可以了(面向对象)就可以了。
有了数据库结构,然后要实现tree图就是根据一定的限制(比如权限,最后对应为tree结构的子集(当然也必须是完整的tree结构))取出符合条件并且完整的tree结构的数据(我采用的解决方法是把权限对应的节点的上溯父节点都取出来保证tree结构的完整性,具体可以看java&xml心得(三)).
假设我们已经完成了上述的工作,那么要实现tree图的代码应该如下:
.........
这样就实现了动态tree图。
上面的这种实现是用jsp+javascript实现。也可以用xml+xsl来实现。不是必要,只是可以让新手也了解一下关于xml的应用。:)
比如我们已经成功把数据库的数据导出成xml格式。代码如下:
更多精彩
赞助商链接