关于combotree的用法总结
后台:
实体树
public class TreeNode{
private String id;
private String text;
private String level;
private List<LogTypeTreeNode> children = new ArrayList<>();
public LogTypeTreeNode(String id, String text, String level){
this.id = id;
this.text = text;
this.level = level;
}
//get()、set()
}
形成展示成的树的结构,需用到递归
public List<TreeNode> getTree() {
List<Map<String, Object>> list = sieveLogService.getEventType();
//获取所有数据需包含(PARENT_ID 父id(PARENT_ID=-1说明是根节点),TYPE_ID 节点id,TYPE_NAME节点名称,TREE_LEVEL 树层级数)
List<TreeNode> allNode = new ArrayList<TreeNode>();// 存放所有节点的集合
for (Map<String, Object> map : list) {
if (MapUtils.getString(map, "PARENT_ID").equals("-1")) {
TreeNode tn = new TreeNode(MapUtils.getString(map, "TYPE_ID"),
MapUtils.getString(map, "TYPE_NAME"), MapUtils.getString(map, "TREE_LEVEL"));
allNode.add(tn);
}
}
for (LogTypeTreeNode root : allNode) {
bulidTreeNode(root, list);
}
return allNode;
}
private TreeNode bulidTreeNode(TreeNode tn, List<Map<String, Object>> list) {
for (Map<String, Object> map : list) {
if (MapUtils.getString(map, "PARENT_ID").equals(tn.getId())) {
TreeNode tnChild = new TreeNode(MapUtils.getString(map, "TYPE_ID"),
MapUtils.getString(map, "EVENT_TYPE_NAME"), MapUtils.getString(map, "TREE_LEVEL"));
tn.addChildNode(tnChild);
bulidTreeNode(tnChild, list);
}
}
return tn;
}
前台:
<input type="checkbox" class="easyui-combotree"
data-options="multiple:true" style="width: 300px;" id="id" />
用ajax获取即可展示:
$.ajax({
url : "/.../getTree",
dataType : "JSON",
success : function(data) {
$('#id').combotree('loadData', data); //当数据展示为undefind时,可用 $('#id').combotree('loadData', eval(data));
}
});
获取选中的树:1.只能获取节点id:var logType = $("#id").combotree("getValues");
2.获取到树节点:var t = $('#operationType').combotree('tree'); // 得到树对象
var node = t.tree('getChecked', [ 'checked', 'indeterminate' ]); // 得到选择的节点
循环node.length,node[i].level:树层级数,node[i].id:节点id,node[i].text:节点名称
编辑时回显选中树节点:
后台:把id值拼成以逗号隔开的字符串,在前台以el表达式接收到<input type="hidden" id="allType" value="${allType}" />
前台:在以上加载完树之后
$.ajax({
url : "/.../getTree",
dataType : "JSON",
success : function(data) {
$('#id').combotree('loadData', data); //当数据展示为undefind时,可用 $('#id').combotree('loadData', eval(data));
//编辑时显示打上对勾
var at = $("#allType").val().split(",");
$('#id').combotree('setValues', at);
}
});
设置树的下拉面板的宽度:
$("#id").combotree({
panelWidth:200,
panelHeight:200
)};
(还有另外加载的树的方法总结,请持续关注)
关于combotree的用法总结的更多相关文章
- easyui 之ComboTree 用法Demo
实现效果如下: HTML部分: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="ser ...
- Easyui主要组件用法
Easyui主要组件用法说明: 1. combogrid用法 说明:combogrid可提供翻页列表的数据选择并可进行数据的过滤查询(查询的传人参数为q,可在控制器中获取这个参数传过来的值,下面的示 ...
- EasyUI –tree、combotree学习总结
EasyUI –tree.combotree学习总结 一. tree总结 (一).tree基本使用 tree控件是web页面中将数据分层一树形结构显示的. 使用$.fn.tree.defaults ...
- 表单(上)EasyUI Form 表单、EasyUI Validatebox 验证框、EasyUI Combobox 组合框、EasyUI Combo 组合、EasyUI Combotree 组合树
EasyUI Form 表单 通过 $.fn.form.defaults 重写默认的 defaults. 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交.加载.清除,等等. ...
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
随机推荐
- CF #312 E. A Simple Task 线段树
题目链接:http://codeforces.com/problemset/problem/558/E 给一个字符串,每次对一个区间内的子串进行升序或者降序的排列,问最后字符串什么样子. 对于字符串排 ...
- 过滤器Filter(17/4/8)
1:是JavaWeb三大组件之一: Servlet.Lisener(2个感知监听器不需要配置).Filter 2:过滤器 它会在一组资源(jsp.servlet.css.html等等)的前面执行! 它 ...
- CODEVS上一道很有趣的题(2145 判断奇偶性)
判断函数y=x^n次方的奇偶性若是奇函数就输出ji,偶函数输出ou 233333 用到了long long 还是爆了,于是就上了char a[1000000] =.= #include<stdi ...
- [Git]07 如何在提交过程中忽略某些文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表.通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等.我们可以创建一个名为 .gitignor ...
- apache配置多个虚拟目录站点
错误的做法 网上查了几个资料,做法如下:比如想配置两个www.web1.com www.web2.com站点 打开httpd.conf ,然后添加: <VirtualHost *:80> ...
- 画地为Mask,随心所欲的高效遮罩组件[Unity]
在上一篇博文"扔掉遮罩,更好的圆形Image组件"中,笔者改变Image的顶点数据,使得Image呈圆形显示,避免了Mask的使用,从而节省Drawcall消耗,提高渲染效率了.这 ...
- OC中NSFileManager
NSFileManager介绍 NSFileManager是用来管理文件系统的 它可以用来进行常见的文件\文件夹操作(拷贝.剪切.创建等) NSFileManager使用了单例模式singleton ...
- 我是这样发现ISP劫持HTTP请求的
编者按:Fundebug的客户通过分析我们提供的报警信息,定位了一个非常棘手的问题—ISP劫持http请求.他的分析过程非常有意思,同时也提醒我们,应该及时支持HTTPS来保证站点安全. 原文: IS ...
- ORA-22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小
在使用Oralce时,直接取出 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换时,会出现ORA-22835的异常,以下是个人的解决方案 create or replace Function ...
- 解决mysql 服务无法启动问题:Can't find messagefile 'D:\ ools\mysql-5.6.25-winx64\share\errmsg.sys'
右击我的电脑-->管理,查看Window日志里的应用程序,发现报错. 仔细检查一下my.ini的配置,确保路径正确,楼主的目录如下: 关键的一步,查看my.default文件,加入这样一句:sq ...