dhtmlxTree 10分钟做一个树

专业版dhtmlxtree下载 专业版dhtmlxtree下载 专业版dhtmlxtree下载 立即下载

项目中要做个分类树和部门树。

架构师让用dhtmlxTree 做个树出来。以前也没写过树。也不知道怎么做。

下载了dhtmlxTree 组件包。网上找了两篇文档看了看。一句话看了半天也看不出来个所以然。

妈的那些文档不解决实际问题。。真他妈的蛋疼。。自己动手丰衣足食。。自己动手写。。写好了忘了没写文档。写个文档已被后患。。希望对能用到的朋友有所帮助 。。10分钟绝对能学会 。。下面有文档。。后面附上的是源码。。完全拷贝改改就能用。。

 

目前试用版本:v2.6 Standard Edition

使用说明如下:

1、解压当前目录下 dhtmlxTree.zip 文件,得到如下文件夹和文件:

 ----解压目录
  - dhtmlxConnector
  - dhtmlxDataProcessor
  - dhtmlxTree
  - docsExplorer
  - libCompiler
  - index.html
  - License_GPL.html
  - readme.txt

2、将dhtmlxTree开发所需文件加入到项目工程中。

   拷贝解压出来的“dhtmlxTree”文件夹到doxenter-maven\src\main\webapp\resources下。

3、为了在项目中方便使用dhtmlxTree,需要将dhtmlxTree的libary、css引入到项目页面中。

   在doxenter-maven\src\main\webapp\WEB-INF\velocity\common\macro路径下的changyong.vm页面中,加入如下代码:

   <link href="#springUrl('/resources/dhtmlxTree/dhtmlxtree.css')" rel="stylesheet" type="text/css" charset="UTF-8" />
   <script src="#springUrl('/resources/dhtmlxTree/dhtmlxcommon.js')" type="text/javascript" charset="UTF-8"></script>
   <script src="#springUrl('/resources/dhtmlxTree/dhtmlxtree.js')" type="text/javascript" charset="UTF-8"></script>

   一句话引入需要用到的css和js其中js和css的引入路径必须根据实际相对路径,否则引用无效。

4、页面中dhtmlxTree的使用:

  
   【添加DIV】在开发页面中添加一个DIV,用来展示Tree,代码如下:

   <div id="category_tree" style="width:280px; height:320px;border:1px solid Silver;"></div>

   注意:该DIV中id是必须的,id的值是自定义的,如以上代码的DIV中id="category_tree" 。
   【dhtmlxTree的初始化和加载】

    创建并初始化dhtmlxTree,代码如下:

     <script type="text/javascript">
     var tree = new dhtmlXTreeObject('category_tree', '100%', '100%', 0);   // 创建dhtmlxTree对象
         tree.setSkin('dhx_skyblue');  // 设置皮肤样式
         tree.setImagePath('#springUrl("/resources/dhtmlxTree/imgs/csh_bluefolders/")'); // 设置样式所需的图像位置
            tree.enableDragAndDrop(0);  // 设置拖拽 0:不允许拖拽
     ......
     ...... 以下代码省略
     ......
     </script>  

        其中, var tree = new dhtmlXTreeObject('category_tree', '100%', '100%', 0); 代码中:

        构造方法中:

  第一个参数:“category_tree”必须与<DIV>中的id值对应;
  第二个参数: 树的宽度为100%;
  第三个参数: 树的高度为100%;
  第四个参数: 树的根节点ID的值为0;

    dhtmlxTree对象创建好以后,需要加载数据,加载的方式有很多种,我们这里以读取XML文件为例。
    在以上代码后加入一下代码:

          tree.setXMLAutoLoading('#springUrl("/index/loadCategoryXMLTree")');  // 默认动态加载
       tree.loadXML('#springUrl("/index/loadCategoryXMLTree")');  // 从xml一次加载

          其中:'#springUrl("/index/loadCategoryXMLTree")'是调用后台返回XML数据文件的URL

    若要使用dhtmlxTree的其他数据加载方式,请参考dhtmlxTree的API等相关文档。

 

下面是源码

/**
  * <p>获取所有的部门并生成tree</p>
  * @param response
  * @throws Exception
  */

/** 系统初始化的部门根节点ID=0 PID=0 */
 private static final int DEPARTMENT_ROOT_ID = 0;
 @RequestMapping(method = RequestMethod.GET)
 public void loadDepartmentXMLTree(HttpServletResponse response)
   throws Exception{
  
  Document document = DocumentHelper.createDocument();//创建document 
  Element xmlRoot = document.addElement("tree").addAttribute("id", "-1");//xml根节点
  Element departmentRoot = null; //部门根节点
  List<Department> list = departmentService.get();//得到部门list 按降序排列
  if(list != null && list.size()>0){//当获取的集合不为null并且结合大小大于0

   DepartmentTree departmentTree = new DepartmentTree();//创建departmentTree 对象此类是
   //按ID升序遍历部门List
   for(int i = 1;i<list.size(); i++){
    Department department = list.get(list.size() - i);
    //如果是部门根节点,则追加到xml根节点下
    //如果是部门的子节点,用visitor模式进行xml遍历生成子部门
    if(department.getId() == DEPARTMENT_ROOT_ID){
     departmentRoot = xmlRoot.addElement("item");
     departmentRoot.addAttribute("text", department.getName());
     departmentRoot.addAttribute("id", String.valueOf(department.getId()));
     departmentRoot.addAttribute("pid",String.valueOf(department.getPid()));
     departmentRoot.addAttribute("open", "1"); //默认展开第一级子部门
    } else {
     departmentTree.setDepartment(department);
     departmentRoot.accept(departmentTree);// 利用dom4j的visitor模式遍历xml文件生成子部门节点
    }
   }
  }
  // 设置缓存
  response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
  response.setHeader("Pragma","no-cache"); //HTTP 1.0
  response.setDateHeader("Expires", 0);
  //设置文档类型和编码UTF-8
  response.setContentType("text/xml");
  PrintWriter writer = response.getWriter();
  OutputFormat format = OutputFormat.createPrettyPrint();
  format.setEncoding("UTF-8");
  // 生成XML
  XMLWriter xmlWriter = new XMLWriter(writer, format);
  xmlWriter.write(document);
  xmlWriter.flush();
 }

此类DepartmentTree 必须继承VisitorSupport  并且重写visit 方法

public class DepartmentTree extends VisitorSupport {

 private Department department;
 /**
  * 取得当前部门的父部门ID,与xml文档中部门ID比较,
  * 如果相等则将当前部门挂在xml文档对应父部门下
  */

 @Override
 public void visit(Element node){
  if(node.attributeValue("id").equals(String.valueOf(this.department.getPid()))){
   Element element = node.addElement("item");
   element.addAttribute("text", this.department.getName());
   element.addAttribute("id", String.valueOf(this.department.getId()));
   element.addAttribute("pid", String.valueOf(this.department.getPid()));
  }
 }
 
 public Department getDepartment() {
  return department;
 }


 public void setDepartment(Department department) {
  this.department = department;
 }
}

//页面代码

<script type="text/javascript">

  var tree = new dhtmlXTreeObject('treeboxbox_tree', '100%', '100%', -1);
    tree.setSkin('dhx_skyblue');
    tree.setImagePath('#springUrl("/resources/dhtmlxTree/imgs/csh_bluefolders/")');
    tree.enableDragAndDrop(0);
 // loadXML
    tree.setXMLAutoLoading('#springUrl("/department/loadDepartmentXMLTree")');
    tree.loadXML('#springUrl("/department/loadDepartmentXMLTree")');
</script>

 //下面是做好后的效果图

dhtmlxtree.js dhtmlxtree.jsdhtmlxtree.js 立即下载

相关推荐

dhtmlxtree

dhtmlxtree dhtmlxtree dhtmlxtree

DHTMLX Tree中文开发指导

最近开发项目使用到了dhtmlXtree做权限设置,看了网上相关的中文资料很少,就把官方的资料翻译了下,一共分2部分,API可以参考官方文档:http://dhtmlx.com/docs/download.shtml   效果图如下(三态树): dhtmlXTree 指南与实例 主要特性 多浏览器/多平台支持 全部由JavaScript控制 动态加载

Colin_Bin的专栏 1万+

dhtmlxtree专业版

dhtmlxtree专业版,非常好用的东西,动太加载,支持事件处理,CSS修改等等

dhtmlxtree.js示例代码下载地址

dhtmlxtree.js

pzp_7676的专栏 2570

DhtmlxTree

dhtmlx公司的系列组件包括以下几个,此处只上传的是其中的树控件: 包含dhtmlxTree(树型控件),dhtmlxTabbar(选项卡),dhtmlxGrid(数据表格),dhtmlxCombo(下拉选项),dhtmlxTreeGrid(树型表格),dhtmlxVault(文件上传控件),dhtmlxMenu(菜单),dhtmlxToolbar(工具条),dhtmlxCalendar(日历控件),dhtmlxFolders(展示台),dhtmlxColorPicker(调色板),dhtmlxWindows(窗口)。

dhtmlxTree专业版

dhtmlxTree专业版

【转】 dhtmlxTree 10分钟做一个树

项目中要做个分类树和部门树。 架构师让用dhtmlxTree 做个树出来。以前也没写过树。也不知道怎么做。 下载了dhtmlxTree 组件包。网上找了两篇文档看了看。一句话看了半天也看不出来个所以然。 妈的那些文档不解决实际问题。。真他妈的蛋疼。。自己动手丰衣足食。。自己动手写。。写好了忘了没写文档。写个文档已被后患。。希望对能用到的朋友有所帮助 。。10分钟绝对能学会 。。下面有文档。。...

eye 爪哇 211

dhtmlxTree

dhtmlxTree代码,通过加载后台XML组建树结构,前台使用JS加载

使用DhtmlTree,开发页面

&lt;script type="text/javascript"&gt; var tree = new dhtmlXTreeObject('category_tree', '100%', '100%', 0); // 创建dhtmlxTree对象 tree.setSkin('dhx_skyblue'); // 设置皮肤样式 tree...

mlc0202的专栏 230

Langchain4j 文档处理实战:从加载到分割的完整流程解析

本文详细解析了使用Langchain4j进行文档处理的完整流程,涵盖从文档加载、解析到分割的核心步骤。通过实战代码示例,重点介绍了如何利用文档分割器将大文档切割为适合大语言模型处理的片段,并提供了参数调优与避坑指南,帮助Java开发者高效构建AI应用的数据处理基础。

smartcontract5的博客 542

VisionMaster 4.2.0安装

按照顺序安装。

XuXing_java的专栏 3792

dhtmltree xtree dtree

dtree: [url]http://www.cssrain.cn/demo/Tree/dtree.zip[/url] xtree: [url]http://www.cssrain.cn/demo/Tree/xtree.rar[/url] dhtmlxTree: [url]http://www.cssrain.cn/demo/Tree/dhtmlxTree.rar[/url]

thinker 174

Origin 2025b中文版安装全指南:避开乱码、水印与崩溃陷阱

Origin作为科研绘图领域的事实标准,其2025b版本首次官方支持简体中文UI,但安装远非‘下一步’即可完成。核心在于理解软件本体、语言包、许可证服务与系统区域设置四者间的耦合关系——尤其Windows非Unicode程序语言必须设为‘中文(简体,中国)’,否则必然触发坐标轴乱码、PDF文字方块等典型故障;而AI辅助拟合、内置Python 3.11等新特性,又依赖正确的字体链(如SimSun)与注册表强制加载(UILanguage=zh-CN)才能稳定启用。该版本广泛应用于材料科学、电化学、XRD/SEM

weixin_42548874的博客 1409

dhtmlXTree与json

最近才接触到dhtmlXTree,下载地址http://www.dhtmlx.com/感觉这个玩意生成树不错,粗略看了下API,其中有个loadJSONObject的方法,根据示例,只需要简单得定义Json数据对象就能很方便就能生成树:  //定义json数据对象var jsondata = ...{id:0, item:[...{id:1,text:"first"},...{id:2

社区信息化在徘徊中前进 2668

手把手教你使用transciver-ip核的配置

手把手教你使用transciver-ip核的配置

u012938458的博客 5416

PX4飞控神经网络控制:从仿真到嵌入式部署实战

神经网络控制正逐步革新传统PID在无人机领域的统治地位。通过将深度学习模型部署到PX4飞控硬件,实现了从传感器数据直接生成电机指令的端到端控制。这种架构依赖TensorFlow Lite Micro等轻量级推理框架,在STM32等嵌入式处理器上可达到93μs级推理速度。关键技术突破包括:基于NVIDIA Isaac Gym的高效仿真训练、模型量化压缩技术(如8位整数量化)、以及与PX4原生安全架构的无缝集成。该方案在mRobotics Pixracer Pro等硬件上验证了可行性,为无人机姿态控制、视觉导航

weixin_30570101的博客 403

dhtmlxTree目录树增加右键菜单及拖拽排序+源码示例下载

一、功能简介 在以前的一个公司内部管理系统(InnerOA)中,对于目录树的构造我采用的是dTree,实现无限级目录显示及右键菜单功能(右键菜单中包括:新建、修改、共享、删除、刷新等功能,如下图所示) 关于公司内部管理系统(InnerOA)中目录树的一些知识以后有时间将整理并提供源码。 但是dTree唯一遗憾的是不支持拖拽排序功能,这让我在完成InnerOA之后心里一直纠结的问题。在网上

大头爸爸的博客 5824

【代码版本管理】SVN(Subversion)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对SVN(Subversion)代码版本管理做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 668

DHTMLXTree的使用

经过这几天对DHTMLXTree的折腾总算是有点眉目了,领导催得紧,组长紧的催。唉,把握这次机会来好好总结一下DHTMLXTree。还是老套路,首先来简单了解一下DHTMLXTree。DHTMLXTree是DHX系列其中关于树的部分,另外还有像DHTMLXGrid控件。基本都是使用js来实现tree的样式和数据加载,支持的格式有xml、json。有下面几个特点:特点 支持界面的拖拽 效率高在加载数据

柏修的专栏 5222

重复点击提交、产生多笔数据、保持数据只操作一次---->接口幂等性校验

幂等校验一、工作真实场景 + 常出现场景二、工作解决方案 + 百度解决方案 一、工作真实场景 + 常出现场景 真实场景:在一次工作中进行成品出库创建成品出库单时,手抖了一下,重复点击了两次确定(提交表单)。结果很神奇的发现居然产生了两笔一模一样的数据(流水号都一样),当时就很懵逼,稍作思考,想想应该是在同一时刻创建了两个出库单。感觉很有意思(因为之前没有遇到过,写代码的时候也没有考虑到这个问题的发生),后面换了一种方式复现场景:提交表单时多次点击Enter按钮,还是会产生多笔重复数据。 常见场景: 订单接

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 6万+

嵌入式工程师必学(52):储能系统ESS

能量存储系统(ESS,Energystoragesystems)存在于各种各样的尺寸、形状和技术中。储能系统的技术,即基本的储能机制,自然会影响其重要特性,包括成本、安全性、性能、可靠性和寿命。然而,尽管基础技术很重要,但一个成功的储能项目依赖于对该技术的彻底和深思熟虑的实施,以实现项目的目标。成功的实施取决于储能系统的架构和组装情况。系统的体系结构可以决定其性能和可靠性,与它所使用的技术一致,甚至与之无关。

码农17年的博客 1443
上一篇: 数据持久化
下一篇: Div+CSS布局入门教程(一) 页面布局与规划
GoodShot
博客等级 码龄22年 968粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值