多表做一个树形菜单,帮忙解决下 在线等....
stand表(工点表)
字段:standID standName
sort表(文件分类表)
字段:sortID sortName
file表(文件分类下的具体文件表)
字段:fileID fileName sortID standID
三层菜单:
工点A
---文件分类A
---具体文件A
---文件分类B
---具体文件B
---具体文件C
工点B
----文件分类A
---具体文件D
----文件分类B
---具体文件E
工点C
----文件分类A
---具体文件F
----文件分类B
---具体文件G
帮忙看下,这三张表怎么弄成树形菜单。
顺便说一下,我以前做的树形菜单的数据都是放一张表里面的,取出来在JSP页面调用一个
js文件里面的 add( "ID ", "父类ID ", "名称 ")就OK了
现在是三张表,不知道怎么搞...哪位帮忙解决下
------解决方案--------------------不缺的,我知道了。
fileID fileName sortID standID 这里的sortID --> standID.
所以当你向树里添加 文件分类表(sort,有一个sortId) 的时候,
你在 具体文件表 查找一个sortId和他相同的文件,这个文件的standId就是文件分类表(sort)的头,也就是父类ID。有了父类id就可以添加到树里了。
添加文件有直接的父类ID
------解决方案--------------------可以试试三个方法
1、用递归sql语句,但是不是所有的数据库都支持递归sql语句的,已知DB2是可以的
2、分别取出三个表数据,程序处理来整合他们的父子关系,放到一个集合里
3、做成ajax菜单,先显示第一层菜单,点击之后显示这个节点的下一层菜单
------解决方案--------------------以前的老帖,供参考
http://community.csdn.net/Expert/topic/5524/5524253.xml?temp=.3242151
我的blog里的一篇关于树形结构的文章,供参考
http://blog.csdn.net/daniel_kaka/archive/2007/05/16/1611914.aspx
------解决方案--------------------首先明确一点:工点有几个,那么树的第一层节点就有几个。
好,来看第二层数据,如果分类中有数据,才显示该节点,还是没有数据,就不显示该节点。如果不管有没有数据,都显示出所有的分类,那更简单。这里假设显示出所有分类
好,得到工点的数据,比如ArrayList arrG。得到分类的数据,比如ArrayList arrS。得到文件数据,比如ArrayList arrF。另外定义一个填充树节点的数据集ArrayList arrData,里面放javabean,例如TreeData,字段三个id ,parentId,name。
循环(arrG)
{
arrData.add(第一层节点);
循环(arrS)
{
arrData.add(第二层节点);//注意TreeData的parentId为工点号
循环(arrF)
{
判断(是否属于这个工点和分类)
{
arrData.add(第三层节点);//注意TreeData的parentId为工点号+分类号
}
}
}
}