Jquery easyui 实现动态树


Posted in Javascript onNovember 17, 2015

在上篇文章给大家介绍了jquery中EasyUI实现异步树,本文给大家介绍jquery easyui实现动态树。

首先是在jsp页面中引入相关的js文件
在body中加入流程列表,通过后天拼接json数据
具体内容请看下面代码详情吧。

首选在jsp页面中引入相关的js

<link rel="stylesheet" type="text/css" href="<%=path %>/css/jquery_easyui/themes/default/easyui.css">
 <link rel="stylesheet" type="text/css" href="<%=path %>/css/jquery_easyui/themes/icon.css">
 <script type="text/javascript" src="<%=path %>/js/jquery_easyui/jquery-1.4.4.min.js"></script>
 <script type="text/javascript" src="<%=path %>/js/jquery_easyui/jquery.easyui.min.js"></script>

添加script

<script>
   $(function(){
   $('#tt2').tree({
    checkbox: false,
    url: '<%=path%>/formconfig/loadWfNodes.do',
    onBeforeExpand: function(node){
     $('#tt2').tree('options').url = '<%=path%>/formconfig/loadWfNodes.do?wfId='+node.id;
    }
   });
  });
 </script>

在body中加入

<body> 
  <ul id="tt2">
  <li state="closed" id='0'><span>流程列表</span></li>
  </ul>
 </body>

后台拼接json数据

package com.aegon_cnooc.oa.formconfig.action;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.aegon_cnooc.framework.base.action.BaseAction;
import com.aegon_cnooc.oa.formconfig.service.FormConfigService;
import com.aegon_cnooc.oa.ibatis.to.TuOafWfTO;
import com.aegon_cnooc.oa.ibatis.to.TuOafWfnodesTO;
import com.aegon_cnooc.util.StringUtil;
/**
 * 加载流程下的节点的名称
 * @Author: liuxinghui
 * @Date: 2011-9-8
 * @Version: 2.0
 * @Despcrition:
 */
public class LoadWfNodesAction extends BaseAction{
 private FormConfigService formConfigService;
 public ActionForward executeAction(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  String wfId=request.getParameter("wfId");
  String jsonstr = "[";
  if(StringUtil.isNotEmpty(wfId)&&"0".equals(wfId)){
   List wfList=formConfigService.findWf();
   for(int i=0;i<wfList.size();i++){
    TuOafWfTO wfTo=(TuOafWfTO)wfList.get(i);
   jsonstr=jsonstr+
    "{\n" +
    "  \"id\":"+wfTo.getWfid()+",\n" + 
    "  \"text\":\"<a href='javaScript:void(0)' target='mainFrame'>"+wfTo.getWfname()+"</a>\",\n" +  
    "  \"state\":\"closed\"\n" + 
    " },";
   }
   int end=jsonstr.length()-1;//去掉最后一个逗号
   String json=jsonstr.substring(0,end);
   json=json+"]";
  response.setContentType("application/json;charset=gbk");
  response.setCharacterEncoding("gbk");
  PrintWriter pw = response.getWriter();
  pw.write(json);
  pw.flush();
  }else{
  List wfNodes=formConfigService.findWfNodesById(wfId);
   for(int i=0;i<wfNodes.size();i++){
    TuOafWfnodesTO wfNodesTo=(TuOafWfnodesTO)wfNodes.get(i);
   jsonstr=jsonstr+
    "{\n" +
    "  \"id\":"+wfNodesTo.getNodeid()+",\n" + 
    "  \"text\":\"<a href='" + request.getContextPath()+
    "/formconfig/loadGroupByWfIdAndNodeId.do?wfId="+wfId+"&nodeId="+wfNodesTo.getNodeid()+"' target='mainFrame'>"+wfNodesTo.getGenstepname()+"("+wfNodesTo.getNodeid()+")</a>\",\n" +  
    "  \"state\":\"closed\"\n" + 
    " },";
   }
   int end=jsonstr.length()-1;//去掉最后一个逗号
   String json=jsonstr.substring(0,end);
   json=json+"]";
  response.setContentType("application/json;charset=gbk");
  response.setCharacterEncoding("gbk");
  PrintWriter pw = response.getWriter();
  pw.write(json);
  pw.flush();
  }
  return null;
 }
 public void setFormConfigService(FormConfigService formConfigService) {
  this.formConfigService = formConfigService;
 }
}

下面一段代码是EasyUI Jquery 动态加载树,点击节点加载

<script type="text/javascript"> 
  $(function() { 
    $(document).ready(function() { 
      $.post("./test/tree.action", {}, function(json) { 
        $("#tt").tree({ 
          data : json.itemsList, 
          onClick : function(node) { 
            $.post("./test/tree.action", { 
              "id" : node.id 
            }, function(json) { 
              $('#tt').tree('append', { 
                parent : node.target, 
                data : json.data 
              }); 
            }, "json"); 
          } 
        }); 
      }, "json"); 
    }); 
  }); 
</script> 
</head> 
<body> 
  <ul id="tt"></ul> 
</body>
Javascript 相关文章推荐
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
js图片延迟技术一般的思路与示例
Mar 20 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
教你在heroku云平台上部署Node.js应用
Jul 30 Javascript
js调出上下文菜单的实例
Dec 17 Javascript
浅析JS运动
Dec 28 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
vue自定义switch开关组件,实现样式可自行更改
Nov 01 Javascript
JavaScript缺少insertAfter解决方案
Jul 03 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
Nov 17 #Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 #Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 #Javascript
基于Jquery easyui 选中特定的tab
Nov 17 #Javascript
jquery实现简单的表单验证
Nov 17 #Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
Nov 17 #Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 #Javascript
You might like
Thinkphp多文件上传实现方法
2014/10/31 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
Numpy掩码式数组详解
2018/04/17 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
波兰珠宝品牌:YES
2019/08/09 全球购物
大三自我鉴定范文
2013/10/05 职场文书
关于工资低的辞职信
2014/01/14 职场文书
导游词欢迎词
2015/02/02 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle