日期:2014-05-18  浏览次数:20616 次

JSP无限分类的具体实现,怎么能自动判断所属的父级分类
表中三个字段
id   name   childid
1   根目录1   0
2   根目录2   0
3   子目录1   1
4   子目录2   1
5   子目录3   2
6   子目录4   2
…………

ID自动生成的,
childid就是   属于哪个的子分类,就是那个分类的ID编号,
从数据库读回来内容后,
怎么能对他实现自动分类呢,归属哪个类别就在哪个类别的下面.
也就是对分类实现能够无限分类,
查了下,都说用递归实现,
谁能给个例子看下吗,
从数据库查回来内容以后就不会弄了,郁闷.

------解决方案--------------------
不是很明白楼主的意思。。。不过如果用ORACLE数据库的话,可以用下面的查询语句进行查询:

SELECT LEVEL, b.* FROM TABLE_NAME b CONNECT BY PRIOR b.id=b.childid START WITH b.childid=0

(有两个建议:第一,childid改名为parentid,因为你这个明显是父节点编号;第二,把childid作一个可以为空的FK,否则你将来会不好处理)

查询得结果:
level id name childid
1 1 根目录1 0
2 3 子目录1 1
2 4 子目录2 1
1 2 根目录2 0
2 5 子目录3 2
2 6 子目录4 2

这样查询出来的就是树形结构了。

如果需要在页面显示,可以用dtree.js控件显示成树形菜单

可以用我写的ctreetable.js控件显示成树形表格
或者用ctreeselector.js控件显示成树形下拉框
(下载地址:http://download.csdn.net/source/171981)

以上控件都不支持数据库动态加载,ctreetable和ctreeselector支持页面动态加载。

如果需要数据库动态加载,可以找找AJAX的树形控件。