html:

  <ul id="relInfoTree" class="easyui-tree"></ul>

js:

$(document).ready(function() {
  loadRelTree();
});

function loadRelTree(){
  $('#relInfoTree').tree({
    // checkbox: true,
    animate:true,
    lines:true,
    url: '/CrocodileSecret/system/cisweb/loadRelTree?id=0',//这是第一次加载树的url 加载根节点
    loadFilter:function(data){
      return data.treeJson;
    },
    onBeforeExpand:function(node){
      $("#relInfoTree").tree('options').url='/CrocodileSecret/system/cisweb/loadRelTree?id='+node.id;//这是点击父节点的时候发送请求去加载子节点
    }
  });
}

java:

-EasyuiTreeNode.java

private Integer id;//: 唯一标示;
private String text;//: 显示的文本;
private List<EasyuiTreeNode> children;//:子节点;
private String state;//:closed或open,表示节点是展开还是折叠;
private String iconCls="icon-blank";//空白图标,可选

getter...setter...

-Controller

@RequestMapping(value = "/loadRelTree", method = RequestMethod.POST)
@ResponseBody
public JSONObject loadRelTree(Integer id,@RequestParam(value = "orgid", required = false) Integer orgid,HttpServletRequest request, HttpServletResponse response) {
JSONObject json = new JSONObject();
  json = cisWebApp.loadRelTree(id);
return json;
}

-service

public JSONObject loadRelTree(Integer id, Integer orgId) {
  JSONObject object = new JSONObject();
  List<EasyuiTreeNode> list=new ArrayList<EasyuiTreeNode>();
  if(id==null || id==0) {
    EasyuiTreeNode node=new EasyuiTreeNode();
    CisOrg cisOrg=cisComp.getOrgById(orgId);
    node.setId(cisOrg.getOwnerUserId());
    node.setText(cisOrg.getOrgName());
    node.setState("open");
    node.setChildren(cisComp.getSublist(cisOrg.getOwnerUserId()));//start 初始显示一级
    if(node.getChildren().size()>0) {
    node.getChildren().stream().forEach(subNode->{
      subNode.setState(crmComponent.selIsClose(subNode.getId())>0 ? "closed":"open");
    });//end 如果只显示根节点,不用这段
    }
  list.add(node);
  }else {//异步加载
    list=cisComp.getSublist(id);
    if(list.size()>0) {
    list.stream().forEach(node->{
      node.setState(crmComponent.selIsClose(node.getId())>0 ? "closed":"open");
    });
  }
}
object.put("treeJson", list);
object.put("status", "succeed");

return object;
}

-xml

<!-- 查询下级 -->

<select id="getSublist" parameterType="java.lang.Integer" resultType="***.util.EasyuiTreeNode">
SELECT
u.id,
u.nickname text
FROM
crm_user r
INNER JOIN cis_user u ON u.id = r.user_id
WHERE
parent_user_id = #{userId}
AND u.deleted=0
AND r.deleted=0
AND r.weight=1
</select>

<!-- 查询是否有下级 -->
<select id="selIsClose" parameterType="java.lang.Integer" resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM
crm_user
WHERE
parent_user_id = #{userId}
AND deleted = 0
AND weight=1

</select>

easyUI 实现异步tree的更多相关文章

  1. jquery easyui的异步tree

    1.创建一个简单的tree 结果如图: <script> $(function(){ $('#tt').tree(){ url:'要提交的url地址', checkbox:true, li ...

  2. EasyUI实现异步加载tree(整合Struts2)

    首先jsp页面有一ul用于展现Tree <ul id="mytree"></ul> 加载Tree <script type="text/ja ...

  3. EasyUI实现异步载入tree(整合Struts2)

    首先jsp页面有一ul用于展现Tree <ul id="mytree"></ul> 载入Tree <script type="text/ja ...

  4. EasyUI 异步Tree

    用etmvc framework返回json数据.创建HTML标记 <ul id="tt"></ul> 创建jQuery代码我们使用url属性来指向远程数据 ...

  5. EasyUI创建异步树形菜单和动态添加标签页tab

    创建异步树形菜单 创建树形菜单的ul标签 <ul class="easyui-tree" id="treeMenu"> </ul> 写j ...

  6. easyui 进阶之tree的常见操作

    前言 easyui是一种基于jQuery的用户界面插件集合,它为创建现代化,互动,JavaScript应用程序,提供必要的功能,完美支持HTML5网页的完整框架,节省网页开发的时间和规模.非常的简单易 ...

  7. PHP 使用编码树,生成easyui中的tree样式

    生成树的时候,数据库中一般设计的都为无级数,即为:父子节点的树,例如:基本的数据表设计为: nodecode 节点编码 parentnodecode 父节点编码 nodename  节点名称 这样的形 ...

  8. 关于EasyUI中的Tree

    2017年6月21日,天气阴.心情比较沉重. 近期由于毕设的事情,三周不写代码了.这周测试提交了一些BUG,于是开始着手处理,还真的是熟能生巧,三周的功夫就感觉有点生疏.其中有一个BUG就是角色对应的 ...

  9. java web前端easyui(layout+tree+双tabs)布局+树+2个选项卡tabs

    1.列出要实现的样式: 2.实现的代码: 分三大部分: 1):页面主体部分:mian.vm <html> <head> <title>Ks UI</title ...

随机推荐

  1. NumberFormatException: For input string: "null"

    日志: [INFO-2016/08/04/16/:21/:25]ProjectCommonFormController.(78) - 审批[同意]入参-[string]commonFormDtoStr ...

  2. C#调用ODBC连接SQL Server数据库的存储过程

    OdbcConnection con = new OdbcConnection("Driver={SQL Server};server=PC-200201070359;uid=sa;pwd= ...

  3. SQL查询语句大全集锦

    SQL查询语句大全集锦 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询t ...

  4. 微信 python搭建服务器

    1. 搭建服务以web.py网络框,python,腾讯云服务器为例介绍. 1)安装/更新需要用到的软件 安装python2.7版本以上 安装web.py pip install web.py sudo ...

  5. wpf label下划线不显示的问题

    突然发现label设置content的值为字符串时,如果字符串中包含_的话,在展示出来时下划线就不见了,百度了一下,发现了问题根源,说的label的ContentPresenter默认将下划线处理成快 ...

  6. 关于android上dpi/screen-size的厘清解释

    android定义了四种screen-size: small normal large xlarge 同时定义了六种dpi级别: ldpi (low) ~120dpimdpi (medium) ~16 ...

  7. CSS学习系列2 -- CSS中的清除浮动

    CSS中有一个很常见的问题,就是元素的浮动. 那么,到底什么是元素的浮动呢,我们来看一个例子 举个例子,在一个div里面内部有浮动元素的话,这个浮动元素会让这个div的高度塌陷. .myDiv{ ba ...

  8. 引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题

    在日常的工作中,我们经常会遇到页面文件(html,jsp等)中引用的js,css,图片等被修改后,而浏览器依然缓存着老版本的文件,客户一时半会看不到修改后的效果,同时也给生产环境的版本发布带来了一些问 ...

  9. python网络爬虫之requests库

    Requests库是用Python编写的HTTP客户端.Requests库比urlopen更加方便.可以节约大量的中间处理过程,从而直接抓取网页数据.来看下具体的例子: def request_fun ...

  10. 反射实现增删改查(DAO层)——修改数据

    先贴出代码,后续补充自己的思路.配置文件.使用方式: /** * * 修改数据 * */ @Override public void updateObject(Object object, Strin ...