- 浏览: 330398 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
chenfang_0913:
您好,我按照您的方法在Windows端进行了实现,可是我一直捕 ...
java实现网卡数据包抓取学习 -
wps886:
google了半天全是错的,只有楼主的xml配置有用,太感谢了 ...
奇怪的400 BAD REQUEST -
laputa73:
node.addEventListener('mouseup' ...
网络拓扑图DEMO -
njyyao:
单击、双击、右击的事件处理事件?
网络拓扑图DEMO -
lilinshtandby:
不错不错,赞一个
dhtmlxTree总结
我之前发布的dhtmltree总结因为页面问题,看起来很不爽,再次做一下更新,希望大家看起来更方便
最近有一个项目需要做到无限级树型菜单,而且要实现右键的功能,经别人的介绍,我接触到了dhtmlxtree,虽然最后并没有使用它,但是我想以后会有机会用的
在官方给出的例子中,加载一个xml文件很简单,文件内容如下
<?xml version='1.0' encoding='utf-8'?> <tree id="0" text="root"> <item text="Books" id="books" im0="books_close.gif" im1="tombs.gif" im2="tombs.gif" src="http://www.baidu.com"> <item text="Mystery & Thrillers" id="mystery" im0="book.gif" im1="books_open.gif" im2="books_close.gif"> <item text="Lawrence Block" id="lb" im0="book.gif" im1="books_open.gif" im2="book.gif"> <item text="All the Flowers Are Dying" id="a1" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif" child="1"> </item> <item text="The Burglar on the Prowl" id="lb_2" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/> <item text="The Plot Thickens" id="lb_3" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/> <item text="Grifter's Game" id="lb_4" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/> <item text="The Burglar Who Thought He Was Bogart" id="lb_5" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/> </item> </item> </item> </tree>
简单了解下,id就是这个节点ID,text是显示的内容,src是点击时的超链接,有了这个xml文件的结构之后,我们就可以通过页面发出请求访问后台,由后台生成类似的xml的字符串,发送到页面,有页面进行接收处理
在页面中的显示如下
<link rel="STYLESHEET" type="text/css" href="../css/dhtmlXTree.css"> <script src="../js/dhtmlXCommon.js"></script> <script src="../js/dhtmlXTree.js"></script> ...... <div id="treeboxbox_tree"></div> <script language="javascript"> tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); tree.setImagePath("../../images/csh_bluebooks/"); tree.setXMLAutoLoading("tasklist.do");//如果不加的话就会不现实有下级菜单 tree.loadXML("tasklist.do?id=<%=id%>"); function tondblclick(id){ id=tree.getSelectedItemId(); //window.location="searchByStype.do?stype=id"; window.parent.main.location="taskright.do?id="+id; } tree.setOnDblClickHandler(tondblclick);//设置tree的双击事件 function add(){ if(tree.getSelectedItemId()==""){ alert("请选中父任务进行添加"); return false; } window.parent.main.location="taskadd.do?id="+tree.getSelectedItemId(); } function update(){ if(tree.getSelectedItemId()==""){ alert("请选中任务进行修改"); return false; } window.parent.main.location="taskupdate.do?id="+tree.getSelectedItemId(); } function update1(){ if(tree.getSelectedItemId()==""){ alert("请选中任务进行修改"); return false; } window.parent.main.location="taskupdate1.do?id="+tree.getSelectedItemId(); } function del(){ if(tree.getSelectedItemId()==""){ alert("请选中任务进行删除"); return false; } if(confirm('确定要删除吗?')) { window.parent.main.location="taskdel.do?id="+tree.getSelectedItemId(); } } function add1(){ window.parent.main.location="taskadd.do?id=<%=id%>"; } function add2(id){ tree._xopenAll(tree._globalIdStorageFind(id)); } function add3(id){ //tree.refreshItem(id); //刷新指定节点 window.location.reload(); } function opentiems(itemId){ tree.openAllItems(0); } function cltime(){ tree.closeAllItems(0); } </script>
这里的tree.loadXML说的明白一点,就是页面第一次打开的时候,访问的请求
tree.setXMLAutoLoading是展开树发送的请求
大家还可以通过查看API定义一些事件处理如:
tree.setOnDblClickHandler(tondblclick);//设置tree的双击事件
台的代码如下:
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session=request.getSession(); UserVo user=(UserVo)session.getAttribute("user"); String id =request.getParameter("id"); String[] ids=id.split("_"); String pid=ids[0]; String fid=ids[1]; response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); StringBuffer sb = new StringBuffer(); sb.append("<?xml version='1.0' encoding='utf-8'?>\n"); if(fid.equals("0")) { id="0"; } sb.append("<tree id=\""+id+"\">\n"); List list = projectService.gettreexml(pid, fid); for(int i=0;i<list.size();i++){ PmenuVo bean = (PmenuVo)list.get(i); sb.append("\t<item"); if(!bean.getSum().equals("0")){ sb.append(" child='1' open ='1'"); } String id11=pid+"_"+bean.getId(); sb.append(" id='"+id11+"' text='"+bean.getTaskname().trim()+"'>\n"); sb.append("\t</item>\n"); } sb.append("</tree> "); try { response.getWriter().print(sb.toString()); } catch (IOException e) { e.printStackTrace(); } return null; }
评论
4 楼
cn_arthurs
2009-08-16
yuxin_85 写道
请问一下,当执行tree.setXMLAutoLoading()方法展开树发送请求时,
如何把当前展开节点的父节点Id 也传到后台去?(默认只会把当前选中节点的Id传到后台去)
如何把当前展开节点的父节点Id 也传到后台去?(默认只会把当前选中节点的Id传到后台去)
可以使用这个方法 getParentId(itemId)来获取itemId节点的父节点ID
3 楼
yuxin_85
2009-08-15
请问一下,当执行tree.setXMLAutoLoading()方法展开树发送请求时,
如何把当前展开节点的父节点Id 也传到后台去?(默认只会把当前选中节点的Id传到后台去)
如何把当前展开节点的父节点Id 也传到后台去?(默认只会把当前选中节点的Id传到后台去)
2 楼
cn_arthurs
2009-06-05
yanMouse 写道
问一下,你这个有没有完整的代码,谢谢了,能否给我了。
你可以去下面的网站上去下载,有很多的demo的
http://www.dhtmlx.com/docs/products/dhtmlxTree/index.shtml
如果有问题大家一起研究
1 楼
yanMouse
2009-06-04
问一下,你这个有没有完整的代码,谢谢了,能否给我了。
发表评论
-
禁止页面放大缩小
2013-05-12 18:42 1932<html> <head> &l ... -
在web.xml中添加多个filter
2011-05-10 15:32 6697web.xml中的多个filter的运行顺序walker(wa ... -
tomcat无法启动
2011-05-08 09:11 1137Myeclipse8.5 + Tomcat7.0.5 发布应 ... -
XML to JSON
2011-04-06 16:17 1315现在JSON在前台的应用越来越广泛,不过也有很多系统是基于XM ... -
ajax tree框架(zTree)
2011-04-05 12:23 2910在以往的项目中,有时会用到树菜单的操作.我用过dhtmltre ... -
通过HttpClient发送Web Service请求
2011-01-19 10:29 1871import java.io.ByteArrayInputSt ... -
使用JES搭建小巧的Mail服务器
2010-10-26 21:56 1622最新需要使用MAIL服务器进行测试,正所谓山不在高,有仙则灵. ... -
struts2+spring2+hibernate3所需要的最少jar包
2010-04-19 16:06 1619Spring2所需要的jar包最简单,只需要一个综合的spri ... -
Struts2中获取requset,session,application
2010-01-04 13:24 1626struts2中Action是集成于com.opensymph ... -
struts2.0中struts.xml配置文件详解(转)
2010-01-04 11:10 1126<!DOCTYPE struts PUBLIC &quo ... -
struts2-Unable to load configuration. - bean - jar
2010-01-01 12:01 2874在整合Struts2 + Spring2 + Hibernat ... -
[转载]企业级SOA之路——在Web Service中使用HTTP和JMS
2009-12-28 10:28 1280本文来自CSDN博客,转载请标明出处:http://blog. ... -
XAMPP虚拟主机配置,实现单主机多个站点
2009-10-24 23:31 2812打开注释 NameVirtualHost *:80 ... -
thinkphp中使用ajax接收json数据
2009-04-01 17:25 9520参考thinkphp+jquery实现ajax,扩展了下,写了 ... -
基于服务器推的web im(未实现)
2009-03-24 16:10 1406想着手研究一下服务器推技术,看看能不能写出一个web im程序 ... -
能够自由拖动布局区域的网页
2009-03-11 09:54 2514<html> <head> <t ... -
jquery+json小例子
2009-02-19 16:08 10052由有不当之处,还望大家能指出。 直接进入主题,使用jquery ... -
在OpenFire的基础上安装JWChat 1.0
2009-02-12 17:57 0http://blog.csdn.net/simonhe197 ... -
JSON介绍
2008-12-11 12:18 2054JSON已经被广泛誉为浏览器中XML的替代品,它的目标仅仅是成 ... -
关于SSO跨应用访问操作解决思路
2008-11-25 22:03 1564最近接手了一些使用CAS,单点登陆的几个项目,项目进行挺顺利, ...
相关推荐
在描述中提到的“dhtmltree生成树js”是指利用这个库的功能来构建JavaScript树状图。生成树的过程通常涉及以下几个步骤: 1. **初始化树**:在HTML代码中引入dhtmltree的JavaScript和CSS文件,然后在页面上选择一个...
7. **tree.xml、tree2.xml**:树形数据的XML文件,dhtmltree会解析这些文件来生成树形结构。开发者可以自定义XML格式来适应不同的数据源和需求。 在实际应用中,dhtmltree的使用涉及以下几个关键知识点: - **Ajax...
在dhtmltree中,JSP可能用于生成树的JSON数据结构,供前端JavaScript解析和渲染。 5. **JSON数据格式**:服务器返回的数据通常以JSON(JavaScript Object Notation)格式呈现,因为它是轻量级且易于读写的交换格式...
5. **xmltree**:XMLTree通常用于从XML数据源生成树形结构。XML因其结构化和易于解析的特性,常被用作数据交换格式。XMLTree控件能解析XML文档并生成交互式的树状表示,方便用户浏览和操作XML数据。 6. **dhtmltree...
3. **JSP集成**:在JSP环境中,`dhtmltree`可以通过JavaScript和服务器端Java代码结合,动态生成和更新树型结构。服务器端负责提供数据,客户端负责展示和交互。 **二、dhtmltree核心功能** 1. **节点操作**:`...
5. **前端渲染**:前端接收到JSON数据后,dhtmltree会解析这个数据,根据其中的节点信息生成树形结构。每个节点代表一个目录或文件,其子节点表示子目录或文件。dhtmltree的API允许开发者监听各种事件,如节点的点击...