`
cn_arthurs
  • 浏览: 327032 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dhtmlxTree总结

阅读更多

最近有一个项目需要做到无限级树型菜单,而且要实现右键的功能,经别人的介绍,我接触到了dhtmlxtree,虽然最后并没有使用它,但是我想以后会有机会用的

在官方给出的例子中,加载一个xml文件很简单,文件内容如下

xml 代码
  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <tree id="0" text="root">  
  3.     <item text="Books" id="books" im0="books_close.gif" im1="tombs.gif" im2="tombs.gif" src="http://www.baidu.com">  
  4.         <item text="Mystery &amp; Thrillers" id="mystery" im0="book.gif" im1="books_open.gif" im2="books_close.gif">  
  5.             <item text="Lawrence Block" id="lb" im0="book.gif" im1="books_open.gif" im2="book.gif">  
  6.                 <item text="All the Flowers Are Dying" id="a1" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"  child="1">  
  7.                 </item>  
  8.                 <item text="The Burglar on the Prowl" id="lb_2" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>  
  9.                 <item text="The Plot Thickens" id="lb_3" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>  
  10.                 <item text="Grifter's Game" id="lb_4" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>  
  11.                 <item text="The Burglar Who Thought He Was Bogart" id="lb_5" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>  
  12.             </item>  
  13.         </item>  
  14.     </item>  
  15. </tree>   

简单了解下,id就是这个节点ID,text是显示的内容,src是点击时的超链接,有了这个xml文件的结构之后,我们就可以通过页面发出请求访问后台,由后台生成类似的xml的字符串,发送到页面,有页面进行接收处理

在页面中的显示如下

js 代码
  1. <link rel="STYLESHEET" type="text/css" href="../css/dhtmlXTree.css">   
  2.     <script src="../js/dhtmlXCommon.js"></script>   
  3.     <script src="../js/dhtmlXTree.js"></script>   
  4.   
  5. ......   
  6.   
  7.   
  8. <div id="treeboxbox_tree"></div>   
  9. <script>   
  10.     tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);   
  11.     tree.setImagePath("../imgs/");   
  12.     tree.setXMLAutoLoading("http://localhost:8082/jh_directoryManager/tree/treeLoad.do?method=open");    
  13.     tree.loadXML("http://localhost:8082/jh_directoryManager/tree/treeLoad.do?method=init");   
  14.     tree.setOnRightClickHandler(viewRight);//设置右键调用方法   
  15.   
  16. </script>  

这里的tree.loadXML说的明白一点,就是页面第一次打开的时候,访问的请求

tree.setXMLAutoLoading是展开树发送的请求

还可以通过查看API定义一些事件处理如

js 代码
  1. tree.setOnRightClickHandler(viewRight);//设置右键调用方法  

这是的意思是说当在树节点上点击右键的时候,会调用viewRight方法

因为在dhtmlxtree中定义右键菜单,我始终没有弄出来,所以最后放弃使用这个工具

好了,在帖下后台的代码,如下

java 代码
  1. /**  
  2.      * 初始化root表显示根节点使用dhtmlTree  
  3.      * @param mapping  
  4.      * @param form  
  5.      * @param request  
  6.      * @param response  
  7.      * @return  
  8.      */  
  9.     public ActionForward init(ActionMapping mapping, ActionForm form,   
  10.             HttpServletRequest request, HttpServletResponse response){   
  11.         FtpRootPathService ftpRootPathService = (FtpRootPathService)this.getWebApplicationContext().getBean("ftpRootPathService");     
  12.         OrganizationService organizationService = (OrganizationService)this.getWebApplicationContext().getBean("organizationService");   
  13. //      List list = organizationService.getRootOrgs();   
  14. //--- 测试数据开始       
  15.         List list = new ArrayList();   
  16. //      TreeBean bean = new TreeBean();   
  17. //      bean.setId("1");bean.setName("机构1");bean.setCount("10");   
  18. //      list.add(bean);   
  19. //      TreeBean bean2 = new TreeBean();   
  20. //      bean2.setId("2");bean2.setName("机构2");bean2.setCount("0");   
  21. //      list.add(bean2);   
  22. //      TreeBean bean4 = new TreeBean();   
  23. //      bean4.setId("3");bean4.setName("机构4");bean4.setCount("3");   
  24. //      list.add(bean4);   
  25. //--- 测试数据结束   
  26.         response.setContentType("text/xml;charset=UTF-8");   
  27.         response.setHeader("Cache-Control","no-cache");   
  28.         try {   
  29.             System.out.println(createDHTMLXML("0",list));    
  30.             response.getWriter().print(createDHTMLXML("0",list));//dhtmlxTree方式   
  31.         } catch (IOException e) {   
  32.             e.printStackTrace();   
  33.         }   
  34.         return null;   
  35.     }   
  36.     /**  
  37.      * 展开子节点处理  
  38.      * @param mapping  
  39.      * @param form  
  40.      * @param request  
  41.      * @param response  
  42.      * @return  
  43.      */  
  44.     public ActionForward open(ActionMapping mapping, ActionForm form,   
  45.             HttpServletRequest request, HttpServletResponse response){   
  46.         FtpRootPathService ftpRootPathService = (FtpRootPathService)this.getWebApplicationContext().getBean("ftpRootPathService");     
  47.         OrganizationService organizationService = (OrganizationService)this.getWebApplicationContext().getBean("organizationService");   
  48.         response.setContentType("text/xml;charset=UTF-8");   
  49.         response.setHeader("Cache-Control","no-cache");   
  50.            
  51.         String id = request.getParameter("id");   
  52.         //根据上一级节点,查询该节点下的所有节点及再下一级节点总个数   
  53.         List orgList = organizationService.getOrgChilds(id);   
  54.   
  55. //      StringBuffer sb = new StringBuffer();   
  56. //      sb.append("<?xml version='1.0' encoding='utf-8'?>\n");   
  57. //      sb.append("<tree id=\""+id+"\">\n");   
  58. //          for(int i=0;i<4;i++){   
  59. //              sb.append("<item text=\""+id+"_"+i+"\" id=\""+id+"_"+i+"\" im0=\"books_close.gif\" im1=\"tombs.gif\" im2=\"tombs.gif\" child=\"1\"></item>\n");   
  60. //          }   
  61. //      sb.append("</tree>");   
  62.         try {   
  63.             System.out.println(createDHTMLXML(id,orgList));   
  64.             response.getWriter().print(createDHTMLXML(id,orgList));   
  65.         } catch (IOException e) {   
  66.             e.printStackTrace();   
  67.         }   
  68.         return null;   
  69.     }   
  70.   
  71. /**  
  72.      * 生成dhtmlTree的xml文件  
  73.      * @param rootList  
  74.      * @return  
  75.      */  
  76.     public String createDHTMLXML(String id,List rootList){   
  77.         StringBuffer buffer = new StringBuffer();   
  78.         buffer.append("<?xml version='1.0' encoding='utf-8'?>\n<tree id=\""+id+"\">\n");   
  79.         for(int i=0;i<rootList.size();i++){   
  80.             TreeBean bean = (TreeBean)rootList.get(i);   
  81.             //添加主目录   
  82.             buffer.append("\t<item text=\""+bean.getName()+"\" id=\""+bean.getId()+"\" im0=\"books_close.gif\" im1=\"tombs.gif\" im2=\"tombs.gif\" ");   
  83.                 //判断是否有子节点,有的话,虚拟一个,强制页面显示有子节点样式   
  84.             if(!bean.getCount().equals("0")){   
  85.                 buffer.append(" child=\"1\"");   
  86.             }   
  87.             buffer.append(">\n");   
  88.             buffer.append("\t</item>\n");   
  89. //          buffer.append("<item text="+id+"_"+i+" id="+id+"_"+i+"  im0=\"books_close.gif\" im1=\"tombs.gif\" im2=\"tombs.gif\"></item>");   
  90.         }   
  91.         buffer.append("</tree> ");   
  92.         return buffer.toString();   
  93.     }  
结语:如果哪位高手在dhtmlxtree中加入了右键菜单,还望不吝赐教
分享到:
评论
5 楼 lilinshtandby 2013-10-29  
不错不错,赞一个
4 楼 cn_arthurs 2009-01-05  

QQ:307215311
3 楼 Mystic 2009-01-04  
http://www.cnblogs.com/jacklaw/archive/2008/07/23/1249788.html
cn_arthurs 写道

http://www.cnblogs.com/jacklaw/archive/2008/07/23/1249788.html 转载收藏

你好你能给我你的联系方式吗  我想问你下 dhtmltree的相关问题
2 楼 cn_arthurs 2008-12-01  
http://www.cnblogs.com/jacklaw/archive/2008/07/23/1249788.html
转载收藏
1 楼 bigbone 2008-09-11  
右键菜单你得自己去写代码生成,它只是提供了一个右键点击树的一个接口,可以自己用js写个右键菜单,来达到你的要求,这个可以实现,我成功过。

相关推荐

    dhtmlxtree

    总结来说,dhtmlxtree是一个强大的JavaScript树形组件,它通过JSON与服务器进行数据交互,提供灵活的数据加载和丰富的用户交互功能。通过实践项目`dhtmlxtreeTest`,我们可以深入了解dhtmlxtree的用法和与JSON的整合...

    dhtmlxTree

    总结,dhtmlxTree是JavaScript编程中用于创建交互式树形结构的强大工具,它结合了丰富的功能、高度的可定制性和灵活的数据加载机制。通过了解其特性、API和许可证,开发者可以更好地在项目中应用和扩展dhtmlxTree,...

    dhtmlXTree1.6

    ### 总结 dhtmlXTree1.6是一个强大且易于使用的JavaScript组件,为Web开发人员提供了构建交互式树状结构的工具。其丰富的特性、良好的文档支持和广泛的社区资源使其成为实现树形数据展示的理想选择。通过熟练掌握...

    dhtmlxtree的一个实用demo

    总结来说,这个压缩包提供了一个关于dhtmlxtree的实际应用案例,特别是与权限管理相关的功能。通过学习这个demo,开发者可以了解到如何利用dhtmlxtree来创建交互式树形结构,并实现复杂的业务逻辑,如权限分配。同时...

    dhtmlxtree实例

    总结起来,dhtmlxtree是一个强大且灵活的JavaScript树形控件,通过其复选框、右键菜单和拖放功能,能够满足各种复杂的Web界面设计需求。开发者可以通过深入理解和熟练运用其API,创建出高效、易用的用户界面。

    第三方树控件dhtmlxTree 3.6

    总结来说,dhtmlxTree 3.6是一个强大且灵活的JavaScript树形控件,提供丰富的功能和良好的扩展性,适用于构建需要展示层级结构的Web应用。通过其丰富的API和扩展模块,开发人员可以轻松地创建符合需求的交互式树形...

    dhtmlxtree中文开发指导

    #### 六、总结 本文详细介绍了如何使用 DHTMLXTree 构建动态树形结构。通过以上步骤,开发者可以轻松地为网站或应用添加强大的树形组件,实现数据的层次化展示。无论是简单的数据展示还是复杂的交互逻辑,DHTMLXTree...

    (纯Json个人发布Java版)DhtmlxTree+strust2构建异步(动态)加载树

    总结一下,这个项目展示了如何利用Java(Struts2框架)、JSON和DhtmlxTree JavaScript库来构建一个高效的、异步加载的树形视图。对于开发人员来说,这是一个很好的学习资源,可以了解如何将后端数据无缝集成到前端...

    基于dhtmlxtree构建动态维护树

    #### 五、总结 本文介绍了如何使用DHTMLXTree组件构建一个动态维护树的完整流程,从数据库设计到前后端代码实现都进行了详细的说明。通过这种方式可以有效地管理具有层级关系的数据集,并为用户提供友好易用的操作...

    dhtmlxTree.zip

    总结来说,"dhtmlxTree.zip" 提供了一整套工具和资源,使开发者能够在JSP应用中轻松实现交互式的树形视图。通过研究提供的文件,开发者可以学习如何集成、配置和定制这个强大的JavaScript组件,从而提升Web应用的...

    DHtmlXTree应用指南.pdf

    ### DHtmlXTree应用指南知识点总结 #### 一、引言 DHtmlXTree是一款用于构建动态树形结构的JavaScript库。它可以帮助开发者快速创建、管理和操作复杂的树状数据结构,广泛应用于各种Web应用程序中,如文件管理器、...

    第三方树控件dhtmlxTree3.6

    总结来说,dhtmlxTree3.6是一个强大且灵活的JavaScript树控件,提供了丰富的特性和良好的可扩展性,适用于各种需要展示层级结构信息的Web应用。通过深入理解和熟练运用,开发人员可以创建出功能完备、用户体验出色的...

    dhtmlxtree 的右键菜单

    ### 六、总结 dhtmlxtree 的右键菜单功能使得用户能够更直观地操作树形结构数据,增强了交互性。理解并熟练运用其添加、修改和删除节点的方法,以及如何自定义和绑定菜单事件,将有助于你构建更高效、用户友好的Web...

    使用xml或者json方式生成dhtmlxtree

    总结来说,"使用XML或JSON方式生成dhtmlxtree"这个主题涵盖了前端树形结构的表示、数据交换格式的选择(XML或JSON),以及如何使用dhtmlxtree库将这些数据转换为用户友好的界面。这涉及到前端与后端的交互、数据解析...

    dhtmlxTree v1.5

    总结来说,dhtmlxTree v1.5 是一个强大且灵活的JavaScript树形菜单库,提供丰富的功能和事件处理,适用于各种需要展示层次化信息的Web应用。通过理解和掌握其核心概念、主要功能以及使用方法,开发者可以轻松地将...

    DhtmlXTREE控件应用

    总结,DhtmlXTREE控件是构建动态、交互性强的树形结构的理想选择。通过将数据库数据转换为XML格式并利用其API,我们可以轻松地生成和管理复杂的目录树。理解并掌握这些核心概念和步骤,将有助于你在实际项目中有效...

    dhtmlxtree1.5

    总结来说,dhtmlxtree1.5是一个功能丰富的JavaScript树形控件,提供了多种许可证供不同类型的用户选择,支持动态加载、拖放、搜索等功能,并且可以通过XML文件灵活配置数据。对于前端开发者来说,这是一个高效且易用...

Global site tag (gtag.js) - Google Analytics