网上有很多:
比如 阿信 的tree,梅子的 等等搜下就很多

解决方案 »

  1.   

    http://download.csdn.net/source/234333
      

  2.   

    国外有个dhtmlx.com是做这个的。还不错
      

  3.   

    JKTree也可以参考一下:
    http://download.csdn.net/source/346399
      

  4.   

    我是要单选树形菜单的一个项
    所以每个前面加个radio
    不知道该怎么做我现在也考虑像ls那么实现
    一层一层向下
      

  5.   

    用DHTMLXtree吧,它那里有完整的解决方案。
      

  6.   

    <html>
    <body>
    /*--
    <script language="javascript">
       document.writeln("<scr"+"ipt language=\"javascript\" src=\"et.js\" type=\"text/javascript\">");
       document.writeln("</scr"+"ipt>");
       var fso, fo, fi, fc, s, d, dir;
       var str = new Array();
       var fname = "fo"
       fso = new ActiveXObject("Scripting.FileSystemObject");
    ////////////////////当前路径
       d = window.location.href;
       str = d.split("/");
       dir = "";
       for (i=3;i<str.length-1;i++)
       {
          dir += str[i];
          dir += "/";
       }
       fo = fso.GetFolder(dir);
       dispFiles(fo);
       dispFolders(fo,fname);
    ////////////////////文件
    function dispFiles(folder)
    {
       fc = new Enumerator(folder.files);
       for (; !fc.atEnd(); fc.moveNext())
       {
          file = fc.item();
          document.writeln("<a href='"+file+"' target = 'right'><h5>"+file.Name+"</h5></a>");
       }
    }
    //////////////////////文件夹
    function dispFolders(folder,fname)
    {  fname = fname + "_";
       var fx = new Enumerator(folder.Subfolders);
       var i = 0;
       for (; !fx.atEnd(); fx.moveNext()){
          i++;
          s = fx.item();
          fname = fname + i;
          document.writeln("<a onClick='et("+fname+",this)'>+"+s.Name+"</a><hr>");
          document.writeln("<div id="+fname+" style='display:none;margin-left:10px'>");
          dispFiles(s);
          dispFolders(s,fname);
          document.writeln("</div>");
       }
    }
    window.parent.right.document.body.innerHtml="asdfasdfasdfasdf"
    </script>
    --*/
    </body>
    </html>
    俺自己写的,显示但前目录下的所有文件和子目录(不能有空格),有不懂的来我博克研究
      

  7.   

    参见:
    http://www.v-ec.com/dh20156/code/dhatv3/
      

  8.   

    看了DHTMLXtree的资料
    感觉比较方便
    但是不明白怎么生成需要的xml
    我的表结构只有父子关系
    只能根据父子判断层级,
    其他层级等信息都没有请问cnchart等各位   有完成的例子吗
    能发给我看下吗??[email protected]
    谢谢
      

  9.   

    还有请问cnchart  你下的DHTMLXtree是1.4的吗
    我打开没有看到有radio的例子
    只有document里面有介绍
      

  10.   

    现在有1.6版本的可下,但如需支持radio的tree,则需要购买付费的pro版,免费版不支持radio。我研究了一下它网站的example文档,将仅支持radio的tree提了出来,你可到http://gz.web35.net.cn/dhtmlxTree_radiostyle.rar去下载。具体使用请仿照里面的test.htm,详细的说明文档在http://www.dhtmlx.com/docs/products/docsExplorer/index.shtml?node=dhtmlxtree。关于生成XML数据,你可以利用后台程序生成一个树的XML文件,然后用dhtmlxtree加载
      

  11.   

    非常感谢cnchart  
    我看了你的radio的例子
    你实现的是 同一层级的单选
    如果我想实现  整个树只能选择一个选项
    应该如何修改呢??我的表结构只有父子关系 
    是不是要递归的遍历表
    才能生成 那样的xml??
    谢谢
      

  12.   

    表结构上只有父子关系是不够的,一般地,你要实现一个树,在数据结构上要有:
    树ID|树名称 |父节点ID|树的路径|树的深度|根节点ID|子节点数|同级别上一节点ID|同级别下一节点ID比如这个树:01一级aaa
    04│├ 二级aaa
    10││ ├ 三级aaa
    11││ └ 三级bbb
    05│├ 二级bbb
    12││ ├ 三级ccc
    13││ └ 三级ddd
    06│└ 二级ccc
    02一级bbb
    07│├ 二级ddd
    14││ ├ 三级eee
    15││ └ 三级fff
    08│├ 二级eee
    16││ └ 三级ggg
    09│└ 二级fff
    03一级ccc
    在表里面是:
    树ID|树名称  |父节点ID|树的路径|树的深度|根节点ID|子节点数|同级别上一节点ID|同级别下一节点ID
    1  |一级AAA|0    |0   |0   |1    |3   |0        |2
    2  |一级BBB|0    |0   |0   |2    |3   |1        |3
    3  |一级CCC|0    |0   |0   |3    |0   |2        |0
    4  |二级AAA|1    |1   |1   |1    |2   |0        |5
    5  |二级BBB|1    |1   |1   |1    |2   |4        |6
    6  |二级CCC|1    |1   |1   |1    |0   |5        |0
    7  |二级DDD|2    |2   |1   |2    |2   |0        |8
    8  |二级EEE|2    |2   |1   |2    |1   |7        |9
    9  |二级FFF|2    |2   |1   |2    |0   |8        |0
    10 |三级AAA|4    |1,4 |2   |1    |0   |0        |11
    11 |三级BBB|4    |1,4 |2   |1    |0   |10       |0
    12 |三级CCC|5    |1,5 |2   |1    |0   |0        |13
    13 |三级DDD|5    |1,5 |2   |1    |0   |12       |0
    14 |三级EEE|7    |2,7 |2   |2    |0   |0        |15
    15 |三级FFF|7    |2,7 |2   |2    |0   |14       |0
    16 |三级GGG|8    |2,8 |2   |2    |0   |0        |0约定:
    父节点ID为0时,表示顶层
    树的路径为0时,表示顶层
    树的深度为0时,表示顶层
    同级别上一节点ID为0时,表示它是该节点的第一个
    同级别下一节点ID为0时,表示它是该节点的最后一个
    如果你理解了这个,要实现一个树就容易多了。
    如果整个树只有一个节点可供选择,这个就容易多了,也不必使用dhtmlxtree了,坛子里有很多,你搜索一下吧。
      

  13.   

    1:
    深度和路径是冗余字段,目的是为提高效率
    如果表里没有深度和路径,你可以自己算出来.2:
    你的表里是一个扁平化了的树,
    如果你的节点是一级一级从服务端load出来的,
    深度和路径对你有什么帮助?3:
    如果是一次性得到所有节点,并且保证孙节点的parentId一定小于子节点的parentId,
    也可以
    //sql: select parentId,itemType,itemId,itemName form tree_table order by parentId,itemType,itemId;
    得到一个扁平化的数据,
    再通过js进行个一次for循环就可以把这个扁平化的数据转成一个带level的树结构数据了4:
    "非常感谢cnchart 我看了你的radio的例子 你实现的是   同一层级的单选 如果我想实现    整个树只能选择一个选项 应该如何修改呢?? "
    所有radio同名就可以了.
    基本问题可以问身边的同事,如果先自己想一下能不能解决,再问别人,可能效率更高一点.
      

  14.   

    使用dhtmltree控件生成树形列表 
    在静态html里面加载xml文件没问题 
    把代码放在jsp页面中后 
    加载同一个xml文件 却提示 
    Errot type:LoadXML 
    Description:Incorrect XML Error type:DataStructure 
    Description:Xml reffers to not existing parent 我把jsp生成的静态html保存后也可以使用   
    就是直接运行jsp不行