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 相关文章推荐
javascript 选择文件夹对话框(web)
Jul 07 Javascript
jQuery开发者都需要知道的5个小技巧
Jan 08 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
document.write的几点使用心得
May 14 Javascript
Angularjs material 实现搜索框功能
Mar 08 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
如何使用angularJs
May 08 Javascript
JS中的Replace()传入函数时的用法详解
Sep 11 Javascript
js实现动态增加文件域表单功能
Oct 22 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
Dec 30 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&amp;java(三)
2006/10/09 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
php实现点击可刷新验证码
2015/11/07 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
python实现查询苹果手机维修进度
2015/03/16 Python
Python fileinput模块使用实例
2015/06/03 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
工业设计专业个人求职信范文
2013/12/28 职场文书
普通党员对照检查材料
2014/09/24 职场文书
硕士学位论文评语
2014/12/31 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS