easyUI 实现异步tree
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的更多相关文章
- jquery easyui的异步tree
1.创建一个简单的tree 结果如图: <script> $(function(){ $('#tt').tree(){ url:'要提交的url地址', checkbox:true, li ...
- EasyUI实现异步加载tree(整合Struts2)
首先jsp页面有一ul用于展现Tree <ul id="mytree"></ul> 加载Tree <script type="text/ja ...
- EasyUI实现异步载入tree(整合Struts2)
首先jsp页面有一ul用于展现Tree <ul id="mytree"></ul> 载入Tree <script type="text/ja ...
- EasyUI 异步Tree
用etmvc framework返回json数据.创建HTML标记 <ul id="tt"></ul> 创建jQuery代码我们使用url属性来指向远程数据 ...
- EasyUI创建异步树形菜单和动态添加标签页tab
创建异步树形菜单 创建树形菜单的ul标签 <ul class="easyui-tree" id="treeMenu"> </ul> 写j ...
- easyui 进阶之tree的常见操作
前言 easyui是一种基于jQuery的用户界面插件集合,它为创建现代化,互动,JavaScript应用程序,提供必要的功能,完美支持HTML5网页的完整框架,节省网页开发的时间和规模.非常的简单易 ...
- PHP 使用编码树,生成easyui中的tree样式
生成树的时候,数据库中一般设计的都为无级数,即为:父子节点的树,例如:基本的数据表设计为: nodecode 节点编码 parentnodecode 父节点编码 nodename 节点名称 这样的形 ...
- 关于EasyUI中的Tree
2017年6月21日,天气阴.心情比较沉重. 近期由于毕设的事情,三周不写代码了.这周测试提交了一些BUG,于是开始着手处理,还真的是熟能生巧,三周的功夫就感觉有点生疏.其中有一个BUG就是角色对应的 ...
- java web前端easyui(layout+tree+双tabs)布局+树+2个选项卡tabs
1.列出要实现的样式: 2.实现的代码: 分三大部分: 1):页面主体部分:mian.vm <html> <head> <title>Ks UI</title ...
随机推荐
- String/ StringBuilder/ StringBuffer
1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...
- Android源码中添加APP
参考罗升阳<Android系统源代码情景分析> 在Android源码中,我们通常把实验性质的Android APP放在packages/experimental目录下.对于一个简单的应用程 ...
- 调试opencv调用摄像头程序时碰到的问题
昨天晚上想把opencv学习笔记整理一下,当跑opencv调用摄像头的程序的时候老是出现Assertion failed (size.width>0 && size.height ...
- ansible的使用
ansible主要分为单条命令和组命令(即配置后缀为名yml的文件,使用ansible-playbook执行)的使用,以下分别对两者进行说明.如不会安装ansible,请参考我的文章 centos7安 ...
- Pig FOREACH 嵌套循环
Example: Nested Block Suppose we have relations A and B. Note that relation B contains an inner bag. ...
- POJ 3690 Constellations (哈希)
题意:给定上一n*m的矩阵,然后的t个p*q的小矩阵,问你匹配不上的有多少个. 析:可以直接用哈希,也可以用AC自动机解决. 代码如下: #pragma comment(linker, "/ ...
- 关闭QtCreator的vim风格编辑模式
今天不小心点到了键盘的快捷键Alt+V,使QtCreator进入了vim风格编辑模式,导致快捷键拷贝粘贴都不正常,找了下资料才发现是这个问题.具体操作如下: 打开QtCreator去掉下列位置的勾选或 ...
- MVC过滤大法(过滤静态文件)
参考文章:https://prerakkaushik.wordpress.com/2014/02/12/routing-request-for-static-files-with-or-without ...
- Ubuntu16.04启动xtion pro live报错
william@william-System-Product-Name:~$ roslaunch openni2_launch openni2.launch ... logging to /home/ ...
- python语言基础语法笔记<note1库安装和工具安装>
Python是一门入门简单的编程语言,它的安装和搭建也非常简单.在大部分的发行Linux版本上都预装了python2,部分也预装了python3,需要查看Linux上是否安装Python,只需要在 命 ...