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

Html

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

jq

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

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

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


tree需要的数据格式

后台组装数据

public String getTreeView(String treeId) throws DefaultException {
try {
List tree = dao.getTreeNode(treeId);
// dao 判断 StringUtils.isNotBlank(treeId)?treeId:0
JSONArray toTree = new JSONArray();
// 使用的是 struts1 + hibernate3 没有spring 也不允许加入其它jar包。。。
if (tree.size()>0) {
for (int i = 0; i < tree.size(); i++) {
ContractCagetoryVO rootVo = (ContractCagetoryVO)tree.get(i);
JSONObject topNode = new JSONObject();
topNode.put("id", rootVo.getFid());
topNode.put("attributes", rootVo.getFisWrite()); // 自定义属性
topNode.put("text",rootVo.getFname());
topNode.put("state", "open"); //初始化时需要展示子节点
List nodes = dao.getTreeNode(rootVo.getFid());
if (nodes.size()>0) {
List tempList = new ArrayList();
Iterator ti = nodes.iterator();
while(ti.hasNext()){
JSONObject childerNode = new JSONObject();
ContractCagetoryVO nodeVo = (ContractCagetoryVO) ti.next();
childerNode.put("id", nodeVo.getFid());
childerNode.put("attributes", nodeVo.getFisWrite()); // 自定义属性
childerNode.put("text",nodeVo.getFname());
childerNode.put("state", "closed");
tempList.add(childerNode);
}
topNode.put("children",tempList);
}
toTree.put(topNode);
}
}
return toTree.toString();
} catch (Exception e) {
throw new DefaultException(e);
}
}

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. Qt笔记——数据库的图形界面

    1将读取的数据通过表格的方式显示出来 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QSqlTable ...

  2. 关于k8s里的service互访,有说法

    昨天,测试了一个项目的接入.明白了以下几个坑: 1,traefik有可能有性能问题,如果daemonset安装,可重建.也需要通过8580端口查看性能. 2,集群中的service访问自己时,好像性能 ...

  3. 我感觉prometheus这种日志收集模式不错

    思想可以,可推可拉,可自己写接入点...还有报警... 按官方文档试一下安装 https://prometheus.io/docs/introduction/getting_started/

  4. NOIP模拟2017.6.11解题报告

    T1: 水题: 代码: #include <cstdio> #include <iostream> #include <algorithm> using names ...

  5. 轻松学习LINUX系列教程推出

    本系列多媒体教程已完成的博文: 1.轻松学习Linux之入门篇 http://chenguang.blog.51cto.com/350944/449214 2.轻松学习Linux之本地安装系统 (分区 ...

  6. 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践

    1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系 ...

  7. python中,将字符串由utf8转gbk

    uni_str = utf8_str.decode('utf-8'); gbk_str = uni_str.encode('gbk');

  8. 转:libFuzzer Tutorial(libFuzzer教程)

    转:https://github.com/google/fuzzer-test-suite/blob/master/tutorial/libFuzzerTutorial.md 本文在Ubuntu16下 ...

  9. 洛谷——P1113 杂务

    P1113 杂务 题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它.比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作.尽早将所有杂务 ...

  10. 【BZOJ 1053】 1053: [HAOI2007]反素数ant (反素数)

    1053: [HAOI2007]反素数ant Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0&l ...