之前看过很多dtree的教程,但是没怎么解决我得问题,为了实现无限级别的树结构,所有的数据要从数据库中读取。
我的项目是用Struts2 + Hib+spring来开发的,所以用了struts 的s 标签。
在取得所有分类的list后,要迭代的放入tree中,实现多级树结构.
<head>
<title></title>
<link rel="StyleSheet" href="css/dtree.css" type="text/css" />
<script type="text/javascript" src="js/dtree.js"></script>
</head>
要载入js,下面js代码就是显示树的过程
<script type="text/javascript">
tree = new dTree('tree');
tree.add("0","-1","系统功能","jsp"," ","_blank");
<s:iterator value="treeList" id="u">
tree.add(
"<s:property value="id" />","<s:property value="pid" />",
"<s:property value="name"/>","treeSearch.action?id="+"<s:property value="id"/>",
"","main","","","","");
</s:iterator>
document.write(tree);
</script>
由于tree的最顶级分类的父分类是 -1 ,所以我手动的加入了顶级分类,如果忘了写,不会显示树结构的。。
而其他的分类就可以按照其他教程写的顺序来进行。
如:tree.add("1","0","二级","jsp"," ","_blank");
tree.add("2","1","二级","jsp"," ","_blank");
只能将dtree写在一个独立的页面中,如果通过div等规定它的格式,可能会出现样式混乱的情况,我没解决,只能变相解决,计入iFrame了