项目中集成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 实现前后端分离.权限控制 以及跨域的问题也有涉及
随机推荐
- .NET直接编译成本地代码:.NET Native架构简介
原文地址:http://blog.csdn.net/atfield/article/details/23449089
- vue 的过滤器
1.0版本: limitBy filteBy orderBy lowerBy upperBy json currency capitalize pluralize debounce 2.0版本: 要自 ...
- Can't load standard profile: GRAY.pf
报错: java.lang.IllegalArgumentException: Can't load standard profile: GRAY.pf at java.awt.color.ICC_P ...
- Matlab处理数据导出Paraview可读的vtk文件(二)
由于我在用SPH方法仿真时用的是FORTRAN语言,并且没有找到直接输出vtk文件的代码,因此偷懒通过MATLAB转换一下数据. 用到的Matlab子程序可通过一下链接找到. Matlab处理数据导出 ...
- Druid数据迁移小计
Druid数据迁移小计 Druid 官方网站上讲了相关的 Dump Segment 和 Insert Segment 相关的功能,但是经过测试这些功能都不好用,报 Guice 的依赖错误,懒得找具体原 ...
- AndroidManifest.xml文件详解(uses-permission)
语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest ...
- 【我要学python】面对对象编程之继承和多态
class animal(object): def run(): print('animal is running...') class dog(animal): def run(self): pri ...
- Java HashSet的元素内容变化导致的问题
概述 HashSet元素引用的对象的内容发生变化,会导致"元素不属于集合"的问题.事实上这个元素还在集合里,但是调用contains方法进行判断,得到的结果却是false. 正文 ...
- 洛谷——P2239 螺旋矩阵
P2239 螺旋矩阵 题目描述 一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵中 ...
- Sqli-labs less 1
Less-1 我们可以在http://127.0.0.1/sqllib/Less-5/?id=1后面直接添加一个 ' ,来看一下效果: 从上述错误当中,我们可以看到提交到sql中的1'在经过sql语句 ...