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 ...
随机推荐
- NumberFormatException: For input string: "null"
日志: [INFO-2016/08/04/16/:21/:25]ProjectCommonFormController.(78) - 审批[同意]入参-[string]commonFormDtoStr ...
- C#调用ODBC连接SQL Server数据库的存储过程
OdbcConnection con = new OdbcConnection("Driver={SQL Server};server=PC-200201070359;uid=sa;pwd= ...
- SQL查询语句大全集锦
SQL查询语句大全集锦 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询t ...
- 微信 python搭建服务器
1. 搭建服务以web.py网络框,python,腾讯云服务器为例介绍. 1)安装/更新需要用到的软件 安装python2.7版本以上 安装web.py pip install web.py sudo ...
- wpf label下划线不显示的问题
突然发现label设置content的值为字符串时,如果字符串中包含_的话,在展示出来时下划线就不见了,百度了一下,发现了问题根源,说的label的ContentPresenter默认将下划线处理成快 ...
- 关于android上dpi/screen-size的厘清解释
android定义了四种screen-size: small normal large xlarge 同时定义了六种dpi级别: ldpi (low) ~120dpimdpi (medium) ~16 ...
- CSS学习系列2 -- CSS中的清除浮动
CSS中有一个很常见的问题,就是元素的浮动. 那么,到底什么是元素的浮动呢,我们来看一个例子 举个例子,在一个div里面内部有浮动元素的话,这个浮动元素会让这个div的高度塌陷. .myDiv{ ba ...
- 引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题
在日常的工作中,我们经常会遇到页面文件(html,jsp等)中引用的js,css,图片等被修改后,而浏览器依然缓存着老版本的文件,客户一时半会看不到修改后的效果,同时也给生产环境的版本发布带来了一些问 ...
- python网络爬虫之requests库
Requests库是用Python编写的HTTP客户端.Requests库比urlopen更加方便.可以节约大量的中间处理过程,从而直接抓取网页数据.来看下具体的例子: def request_fun ...
- 反射实现增删改查(DAO层)——修改数据
先贴出代码,后续补充自己的思路.配置文件.使用方式: /** * * 修改数据 * */ @Override public void updateObject(Object object, Strin ...