项目中集成Easyui-Tree,可拖拽更新节点
由于公司架构较旧,使用的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,可拖拽更新节点的更多相关文章
- iOS原生项目中集成React Native
1.本文的前提条件是,电脑上已经安装了CocoaPods,React Native相关环境. 2.使用Xcode新建一个工程.EmbedRNMeituan [图1] 3.使用CocoaPods安装Re ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- 06_在web项目中集成Spring
在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...
- SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL
1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...
- 如何在你的项目中集成 CAP【手把手视频教程】
前言 之前录制过一期关于CAP的视频,但是由于当时是直播时录制的视频,背景音比较杂所以质量有点差.这次的视频没有直播,直接录制的,视频质量会好很多,第一遍录制完成之后发现播放到一半没有声音,所以又重新 ...
- 现有项目中集成Flutter
本文列举了项目开发使用Flutter会遇到的问题,以及如何使用Flutter module在现有项目中集成Flutter,并对其原理进行了分析. 最近在做的一个商业项目,完全的使用Flutter编写的 ...
- 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 ...
- java web项目(spring项目)中集成webservice ,实现对外开放接口
什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...
- 在前后端分离的SpringBoot项目中集成Shiro权限框架
参考[1].在前后端分离的SpringBoot项目中集成Shiro权限框架 参考[2]. Springboot + Vue + shiro 实现前后端分离.权限控制 以及跨域的问题也有涉及
随机推荐
- android datepicker timepicker简单用法
1.效果图 2. xml布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- 解决: httpclient ssl 验证导致死锁问题
线上图片下载服务器平时运行正常,最近突然出现一种比较奇怪的现象,只接受请求,但却没有处理请求,最开始怀疑下载线程挂掉了,dump 项目线程后发现异常: "pool-2-thread-1&qu ...
- 《java并发编程实战》读书笔记5--任务执行, Executor框架
第6章 任务执行 6.1 在线程中执行任务 第一步要找出清晰的任务边界.大多数服务器应用程序都提供了一种自然的任务边界选择方式:以独立的请求为边界. -6.6.1 串行地执行任务 最简单的任务调度策略 ...
- bzoj1597 斜率优化dp
思路:先把没有用的土地去掉,然后按照x轴排序,容易得到dp转移方程 dp[ i ] = min{ dp[ j ] + b[ j + 1 ] * a[ i ] } 0 <= j < i ...
- 论文笔记-RCNN
CAFFE玩了也有段时间了,现在开始准备研究一下物体检测,现在知道的有RCNN.spp-net.Fast-RCNN和Faster-RCNN,作为菜鸟我还是从头学习,决定先看RCNN,因为有项目要做还要 ...
- 【我要学python】愣头青之小数点精度控制
写在最前面:今天遇到了棘手的问题,看了两遍才看懂,本文属于转载+修改,原出处是Herbert's Blog 基础 浮点数是用机器上浮点数的本机双精度(64 bit)表示的.提供大约17位的精度和范围从 ...
- leetcode104 Maximum Depth
题意:二叉树最大深度 思路:递归,但是不知道怎么回事直接在return里面计算总是报超时,用俩变量就可以A···奇怪,没想通 代码: int maxDepth(TreeNode* root) { if ...
- [Atcoder Regular Contest 061] Tutorial
Link: ARC061 传送门 C: 暴力$dfs$就好了 #include <bits/stdc++.h> using namespace std; typedef long long ...
- [NOIP 2004] T3 合并果子
居然和BZOJ 1724完全一样o(╯□╰)o #include <bits/stdc++.h> using namespace std; typedef long long ll; in ...
- BZOJ 1700 [Usaco2007 Jan]Problem Solving 解题(单调DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1700 [题目大意] 共有p道题目要做,每个月收入只有n元,用于付钱做题之外的部分都会吃 ...