由于公司架构较旧,使用的jdk版本为1.4,页面上也没有el表达式。

Html

  1. <ul class="easyui-tree" id="data"></ul>

jq

  1. $(function(){
  2. $('#data').tree({
  3. url:'<%=context%>/test.do?action=toTree',
  4. lines:true, //显示树线
  5. dnd:true, //可拖动
  6. animate:true, //展开效果
  7. onClick:function(node){
  8.  
  9. },
  10. onBeforeDrop:function(target,source){
         // 这个方法的效果是拖动 a 节点 到 b节点 (释放时) 触发。但是api解释为 : 在拖动一个节点之前触发。
  11. var targetNode = $(this).tree('getNode',target);
  12. if(confirm("确认把 : "+source.text+" 更新到 : "+targetNode.text+" 节点下?"))
  13. return true;
  14. return false;
  15. },
  16. onDrop:function(target,source,operate){
    // 这个方法的效果是 拖动后触发向后台更新 被拖动节点更新到目标节点下。
  17. var targetNode = $(this).tree('getNode',target);
  18. $.post('<%=context%>/tests.do?action=dndupdate',{source:source.id,target:targetNode.id},function(result){
  19. if(result==1){
  20. // 成功后 onDrop 方法会自动打开目标节点
  21. }else{
  22. alert("更新失败,请重新尝试!");
  23. $('#data').tree('reload');
    //即使失败了,但是被拖动节点照样会追加到目标节点下。但是只是dom里,所以要刷新树保持实时数据。
  24. }
  25. });
  26. }
  27.  
  28. });
  29. });

不知是否我理解错了这个方法还是翻译不准确

我的理解是 被拖动节点 拖动时立即触发,我是这样理解的。但是实际效果是拖动后释放到目标节点后触发。


tree需要的数据格式

后台组装数据

  1. public String getTreeView(String treeId) throws DefaultException {
  2. try {
  3. List tree = dao.getTreeNode(treeId);
    // dao 判断 StringUtils.isNotBlank(treeId)?treeId:0
  4. JSONArray toTree = new JSONArray();
    // 使用的是 struts1 + hibernate3 没有spring 也不允许加入其它jar包。。。
  5. if (tree.size()>0) {
  6. for (int i = 0; i < tree.size(); i++) {
  7. ContractCagetoryVO rootVo = (ContractCagetoryVO)tree.get(i);
  8. JSONObject topNode = new JSONObject();
  9. topNode.put("id", rootVo.getFid());
  10. topNode.put("attributes", rootVo.getFisWrite()); // 自定义属性
  11. topNode.put("text",rootVo.getFname());
  12. topNode.put("state", "open");
  13.  
  14. //初始化时需要展示子节点
  15. List nodes = dao.getTreeNode(rootVo.getFid());
  16. if (nodes.size()>0) {
  17. List tempList = new ArrayList();
  18. Iterator ti = nodes.iterator();
  19. while(ti.hasNext()){
  20. JSONObject childerNode = new JSONObject();
  21. ContractCagetoryVO nodeVo = (ContractCagetoryVO) ti.next();
  22. childerNode.put("id", nodeVo.getFid());
  23. childerNode.put("attributes", nodeVo.getFisWrite()); // 自定义属性
  24. childerNode.put("text",nodeVo.getFname());
  25. childerNode.put("state", "closed");
  26. tempList.add(childerNode);
  27. }
  28. topNode.put("children",tempList);
  29. }
  30. toTree.put(topNode);
  31. }
  32. }
  33. return toTree.toString();
  34. } catch (Exception e) {
  35. throw new DefaultException(e);
  36. }
  37. }

tree是点一下 就会发送请求 url + 当前节点 id 。

效果

项目中集成Easyui-Tree,可拖拽更新节点的更多相关文章

  1. iOS原生项目中集成React Native

    1.本文的前提条件是,电脑上已经安装了CocoaPods,React Native相关环境. 2.使用Xcode新建一个工程.EmbedRNMeituan [图1] 3.使用CocoaPods安装Re ...

  2. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

  3. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  4. SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

    1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...

  5. 如何在你的项目中集成 CAP【手把手视频教程】

    前言 之前录制过一期关于CAP的视频,但是由于当时是直播时录制的视频,背景音比较杂所以质量有点差.这次的视频没有直播,直接录制的,视频质量会好很多,第一遍录制完成之后发现播放到一半没有声音,所以又重新 ...

  6. 现有项目中集成Flutter

    本文列举了项目开发使用Flutter会遇到的问题,以及如何使用Flutter module在现有项目中集成Flutter,并对其原理进行了分析. 最近在做的一个商业项目,完全的使用Flutter编写的 ...

  7. Android Studio 项目中集成百度地图SDK报Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I错误

    Android Studio 项目中集成百度地图SDK报以下错误: java.lang.UnsatisfiedLinkError: Native method not found: com.baidu ...

  8. java web项目(spring项目)中集成webservice ,实现对外开放接口

    什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...

  9. 在前后端分离的SpringBoot项目中集成Shiro权限框架

    参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制   以及跨域的问题也有涉及

随机推荐

  1. .NET直接编译成本地代码:.NET Native架构简介

    原文地址:http://blog.csdn.net/atfield/article/details/23449089

  2. vue 的过滤器

    1.0版本: limitBy filteBy orderBy lowerBy upperBy json currency capitalize pluralize debounce 2.0版本: 要自 ...

  3. Can't load standard profile: GRAY.pf

    报错: java.lang.IllegalArgumentException: Can't load standard profile: GRAY.pf at java.awt.color.ICC_P ...

  4. Matlab处理数据导出Paraview可读的vtk文件(二)

    由于我在用SPH方法仿真时用的是FORTRAN语言,并且没有找到直接输出vtk文件的代码,因此偷懒通过MATLAB转换一下数据. 用到的Matlab子程序可通过一下链接找到. Matlab处理数据导出 ...

  5. Druid数据迁移小计

    Druid数据迁移小计 Druid 官方网站上讲了相关的 Dump Segment 和 Insert Segment 相关的功能,但是经过测试这些功能都不好用,报 Guice 的依赖错误,懒得找具体原 ...

  6. AndroidManifest.xml文件详解(uses-permission)

    语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest ...

  7. 【我要学python】面对对象编程之继承和多态

    class animal(object): def run(): print('animal is running...') class dog(animal): def run(self): pri ...

  8. Java HashSet的元素内容变化导致的问题

    概述 HashSet元素引用的对象的内容发生变化,会导致"元素不属于集合"的问题.事实上这个元素还在集合里,但是调用contains方法进行判断,得到的结果却是false. 正文 ...

  9. 洛谷——P2239 螺旋矩阵

    P2239 螺旋矩阵 题目描述 一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵中 ...

  10. Sqli-labs less 1

    Less-1 我们可以在http://127.0.0.1/sqllib/Less-5/?id=1后面直接添加一个 ' ,来看一下效果: 从上述错误当中,我们可以看到提交到sql中的1'在经过sql语句 ...