jquery中EasyUI实现异步树


Posted in Javascript onMarch 01, 2015

前台使用EasyUI实现 . EasyUI向后台传递一个id参数 .

第一次加载 , 向后台传递的id为null .

之后每次将树节点展开 , 会向后台传递一个当前节点的 id .

Control层 :

 /**

  * tree

  */

 @RequestMapping(value = "/tree.do")

 public void mytree(HttpServletResponse response, String id) {

  this.writeJson(response, bookService.getChildrenTree(id));

 }

Service层 :

 @Transactional

 @Override

 public List<Tree> getChildrenTree(String pid) {

  try {

   List<Tree> result = new ArrayList<Tree>();

   //获得儿子节点的列表

   List<TBookType> childrenList = this.getChildrenType(pid);

   if (childrenList != null && childrenList.size() > 0) {

    for (TBookType child : childrenList) {

     // 获取孙子的个数

     long count = bookDao.getChildrenCount(String.valueOf(child.getId()));

     Tree node = new Tree();

     node.setId(String.valueOf(child.getId()));

     node.setPid(String.valueOf(child.getPid()));

     node.setText(child.getName());

     node.setChildren(null);

     node.setState(count > 0 ? "closed" : "open");

     //将儿子列表childrenList数据逐个存到树当中

     result.add(node);

    }

   }

    return result; 

  } catch (Exception e) {

   throw new BusinessException("获取图书类型数据出现错误!", e);

  }

 }

Dao层 :

 @Override

 public List<TBookType> getChildrenType(String pid) {

 //这个的pid就是当前展开节点的id , 通过父节点的 id 来获得子节点

 StringBuilder sqlstr = new StringBuilder();

  if (StringUtils.isBlank(pid))

   sqlstr.append("select * from booktype bt where bt.pid=0");

  else

   sqlstr.append("select * from booktype bt where bt.pid=" + pid );

  return this.search2(TBookType.class, sqlstr.toString());

 }
 @Override

 public long getChildrenCount(String pid) {

 //这个的pid就是当前展开节点的id , 通过父节点的 id 来获得子节点的个数

  StringBuilder sqlstr = new StringBuilder();

  if (StringUtils.isBlank(pid))

   sqlstr.append("select count(*) from booktype tb where tb.pid='0'");

  else

   sqlstr.append("select count(*) from booktype tb where tb.pid='" + pid + "'");

  return this.count(sqlstr.toString());

 }

 

以上所述就是本文关于EasyUI实现异步树的全部代码了,希望对大家能有所帮助

Javascript 相关文章推荐
JS 文件本身编码转换 图文教程
Oct 12 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
Sep 21 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
JS实现具备延时功能的滑动门菜单效果
Sep 17 Javascript
微信小程序-详解数据缓存
Nov 24 Javascript
ES6中class类用法实例浅析
Apr 06 Javascript
JavaScript之underscore_动力节点Java学院整理
Jul 03 Javascript
thinkjs 文件上传功能实例代码
Nov 08 Javascript
vuejs实现本地数据的筛选分页功能思路详解
Nov 15 Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 Javascript
Javascript节流函数throttle和防抖函数debounce
Dec 03 Javascript
jquery中EasyUI实现同步树
Mar 01 #Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 #Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 #Javascript
深入分析Cookie的安全性问题
Mar 01 #Javascript
浅谈JavaScript事件的属性列表
Mar 01 #Javascript
浅析javascript中的DOM
Mar 01 #Javascript
javascript中的正则表达式使用指南
Mar 01 #Javascript
You might like
php 购物车实例(申精)
2009/05/11 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python实现TCP通信的示例代码
2019/09/09 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
tensorflow的计算图总结
2020/01/12 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
delegate与普通函数的区别
2014/01/22 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
实习评语大全
2014/04/26 职场文书
租车协议书
2015/01/27 职场文书
详解MySQL的半同步
2021/04/22 MySQL
详解python的异常捕获
2022/03/03 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python