JFinal 实现jQuery EasyUI ComboTree数据加载并收起菜单节点
2015-09-02 16:56
756 查看
最终实现的效果:
第一步:jsp页面中添加下拉框
第二步:用js加载combotree,用js加载更加方便
注释:$(“#cc”).combotree(‘tree’).tree(“collapseAll”); 此语句可以收起节点
第三步:在JFinal的Controller中添加url对应的方法
注释:写SQL的时候,最好只查询id和text,并取为别名,这样方便构成树
第四步:写构成ComboTree的函数getRecordTree
注释:请根据自己的需求改写本函数
附加:ComboTree一般常用方法
以上就是实现方法,分享结束~
第一步:jsp页面中添加下拉框
<select id="cc" class="easyui-combotree" name="cc" style="width:200px;"></select>
第二步:用js加载combotree,用js加载更加方便
$(function () { $('#cc').combotree({ url: 'combotreeData', valueField: 'id', textField: 'text', editable: false, onLoadSuccess: function (node, data) { $("#cc").combotree('tree').tree("collapseAll"); } }); });
注释:$(“#cc”).combotree(‘tree’).tree(“collapseAll”); 此语句可以收起节点
第三步:在JFinal的Controller中添加url对应的方法
@PermissionOwn(name = "combotree获取数据") public void combotreeData() { List<Record> records = Db.find( "select id,parent_id,title text from 【table_name】"); //getRecordTree()为组成combotree的函数 List<Record> result = Util.getRecordTree(records); //renderJson方法为转换成JSON对象并返回 renderJson(result); }
注释:写SQL的时候,最好只查询id和text,并取为别名,这样方便构成树
第四步:写构成ComboTree的函数getRecordTree
/** * 获取树结构 * @param records * @return */ public static List<Record> getRecordTree(List<Record> records) { List<Record> result = new ArrayList<Record>(); Map<Integer, Record> map = new HashMap<Integer, Record>(); for (Record record : records) { map.put(record.getLong("id").intValue(), record); } for (Record record : records) { if (record.getInt("parent_id") == 0) { result.add(record); } else { Record parentRecord = map.get(record.getInt("parent_id")); if (parentRecord == null) { continue; } List<Record> list = parentRecord.get("children"); list = list == null ? new ArrayList<Record>() : list; list.add(record); parentRecord.set("children", list); } } return result; }
注释:请根据自己的需求改写本函数
附加:ComboTree一般常用方法
加载:$('#cc').combotree('reload'); 赋值:$('#cc').combotree('setValue', 2); 获取数据:var val = $('#cc').combotree('getValue'); 设置不可用:$('#cc').combotree('disable'); 设置可用:$('#cc').combotree('enable'); 测试Json数据 var jsonData = [{ "id":1, "text":"My Documents", "children":[{ "id":11, "text":"Photos", "state":"closed", "children":[{ "id":111, "text":"Friend" },{ "id":112, "text":"Wife" },{ "id":113, "text":"Company" }] },{ "id":12, "text":"Program Files", "children":[{ "id":121, "text":"Intel" },{ "id":123, "text":"Microsoft Office" },{ "id":124, "text":"Games", "checked":true }] },{ "id":13, "text":"index.html" }] }];
以上就是实现方法,分享结束~
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- jQuery Ajax 跨域调用
- 移动端的长按事件
- easyui------显示隐藏列功能
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- jQuery菜单插件用法实例
- JQuery 初体验(建议学习jquery)
- Jquery实现的table最后一行添加样式的代码
- jQuery实现向下滑出的平滑下拉菜单效果
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码
- 使用Browserify配合jQuery进行编程的超级指南
- jquery如何实现在加载完iframe的内容后再进行操作
- jquery $.ajax()取xml数据的小问题解决方法
- jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
- Jquery 表单取值赋值的一些基本操作
- jQuery实现复选框批量选择与反选的方法