Easyui 异步树的实现
网上最多的onBeforeExpand 可用,因为后台代码没写对导致树形结构重复加载数据
前端代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<div>
<table cellpadding="5">
<tr>
<td height="300px"><ul id="diseaseNameTree" class="easyui-tree"></ul>
</td>
</tr>
</table>
</div>
<script>
$('#diseaseNameTree').tree({
url : getServer_context() + '/api/patient/getDiseaseNameTree?Id=',
onBeforeExpand : function(node, param) {
console.log('ID=' + node.id);
console.log('length=' + node.id.length);
$('#diseaseNameTree').tree('options').url = getServer_context() + '/api/patient/getDiseaseNameTree?Id=' + node.id;
}
}) function searchICD10ByPinyin() {
var pinyin = $('#ICD10Pinyin').val();
console.log(pinyin);
if (pinyin == null || pinyin == "") {
$('#diseaseNameTree').tree('reload');
} else {
console.log('000');
$('#diseaseNameTree').tree({
url: getServer_context() + '/api/patient/getDiseaseNameByPinyin?Pinyin=' + pinyin
});
} }
</script>
后台代码:
public JSONArray getDiseaseNameTreeData(String Id) throws RecordNotFoundException {
JSONArray jsonArray = new JSONArray();
JSONArray childrenArray = new JSONArray();
JSONArray grandChildrenArray = new JSONArray();
JSONObject parentObject = new JSONObject();
JSONObject childrenObject = new JSONObject();
JSONObject grandChildrenObject = new JSONObject();
if(Id == null || "".equals(Id)) {
Iterable<SsIcd10> parentList = ssICD10Dao.getDiseaseNameParent();
for(SsIcd10 parent : parentList) {
parentObject.clear();
parentObject.put("id", parent.getFicd10());
parentObject.put("text", parent.getFdesc());
parentObject.put("state", "closed");
jsonArray.add(parentObject);
}
return jsonArray;
} else if (Id.length() == 3){
Iterable<SsIcd10> childrenList = ssICD10Dao.gettDiseaseNameChildren(Id);
for(SsIcd10 child : childrenList) {
childrenObject.clear();
childrenObject.put("id", child.getFicd10());
childrenObject.put("text", child.getFdesc());
childrenObject.put("state", ssICD10Dao.hasGrandChildren(child.getFicd10()) > 0 ? "closed" : "open");
childrenArray.add(childrenObject);
}
return childrenArray;
} else {
Iterable<SsIcd10> grandChildrenList = ssICD10Dao.gettDiseaseNameGrandChildren(Id);
for(SsIcd10 grandChild : grandChildrenList) {
grandChildrenObject.clear();
grandChildrenObject.put("id", grandChild.getFicd10());
grandChildrenObject.put("text", grandChild.getFdesc());
grandChildrenArray.add(grandChildrenObject);
}
return grandChildrenArray;
}
逻辑写的很傻,还没想出来怎么写更好的
public JSONArray getDiseaseNameTreeByPinyin(String Pinyin) throws RecordNotFoundException {
JSONArray jsonArray = new JSONArray();
JSONArray childrenArray = new JSONArray();
JSONArray grandChildrenArray = new JSONArray();
JSONObject parentObject = new JSONObject();
JSONObject childrenObject = new JSONObject();
JSONObject grandChildrenObject = new JSONObject();
Iterable<SsIcd10> list = ssICD10Dao.getDiseaseNameDataByPinyin(Pinyin);
for(SsIcd10 ssIcd10 : list) {
if(ssIcd10.getFicd10().length() == 3) {
parentObject.clear();
parentObject.put("id", ssIcd10.getFicd10());
parentObject.put("text", ssIcd10.getFdesc());
Iterable<SsIcd10> children = ssICD10Dao.getDiseaseNameChildrenByPinyin(ssIcd10.getFicd10(), Pinyin);
if(children != null) {
childrenArray.clear();
for(SsIcd10 child : children) {
childrenObject.clear();
childrenObject.put("id", child.getFicd10());
childrenObject.put("text", child.getFdesc());
Iterable<SsIcd10> grandChildren = ssICD10Dao.getDiseaseNameGrandChildrenByPinyin(child.getFicd10(), Pinyin);
if(grandChildren != null) {
grandChildrenArray.clear();
for(SsIcd10 grandChild : grandChildren) {
grandChildrenObject.clear();
grandChildrenObject.put("id", grandChild.getFicd10());
grandChildrenObject.put("text", grandChild.getFdesc());
grandChildrenArray.add(grandChildrenObject);
}
childrenObject.put("children", grandChildrenArray);
}
childrenArray.add(childrenObject);
}
parentObject.put("children", childrenArray);
}
jsonArray.add(parentObject);
} else if (ssIcd10.getFicd10().length() > 3 && ssIcd10.getFicd10().length() <= 6) {
if(ssICD10Dao.hasParent(ssIcd10.getFicd10().substring(0, 3), Pinyin) == 0) {
parentObject.clear();
parentObject.put("id", ssIcd10.getFicd10());
parentObject.put("text", ssIcd10.getFdesc());
Iterable<SsIcd10> grandChildren = ssICD10Dao.getDiseaseNameGrandChildrenByPinyin(ssIcd10.getFicd10(), Pinyin);
if(grandChildren != null) {
grandChildrenArray.clear();
for(SsIcd10 grandChild : grandChildren) {
grandChildrenObject.clear();
grandChildrenObject.put("id", grandChild.getFicd10());
grandChildrenObject.put("text", grandChild.getFdesc());
grandChildrenArray.add(grandChildrenObject);
}
parentObject.put("children", grandChildrenArray);
}
jsonArray.add(parentObject);
}
} else {
if(ssICD10Dao.hasParent(ssIcd10.getFicd10().substring(0, 3), Pinyin) == 0
&& ssICD10Dao.hasChildren(ssIcd10.getFicd10().substring(0, 6), Pinyin) == 0) {
parentObject.clear();
parentObject.put("id", ssIcd10.getFicd10());
parentObject.put("text", ssIcd10.getFdesc());
jsonArray.add(parentObject);
}
}
}
return jsonArray;
}
Easyui 异步树的实现的更多相关文章
- Easyui 异步树直接所有展开
初始化异步树直接所有展开代码: $(function(){ $('#tt').tree({ url:'<%=request.getContextPath()%>/treeInit', li ...
- EasyUI的功能树之异步树
最近几个项目都用到了EasyUI这个Jquery框架,目前感觉起来还是很好使的,展示效果很好,帮助文档什么的资料很多,而且互联网上Easy粉很多,大多数拥护和喜爱EasyUI的粉丝们都愿意在网络平台互 ...
- EasyUI tree 异步树与采用扁平化实现的同步树
所谓好记性不如烂笔头,为了以防忘记,才写下这篇博客,废话不多.. 异步树: tips: 可以采用easyui里的原始数据格式,也可以采用扁平化的数据格式. 使用场景: 当菜单模块数量庞大或者无限极 ...
- 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格
EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...
- 基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面
最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...
- 使用EasyUI的树控件构建Web界面
最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...
- easyui 获取树的平级根节点的父节点&选择性展示树的一个根节点
1.easyui的树的根节点一般是几个平级的,怎样获取这些父节点的id? 可以将获取到的平级根节点放在一个数组中 var roots=[]; roots=$("#tree1").t ...
- EasyUI Tree 树
转自:http://www.jeasyui.net/plugins/185.html 通过 $.fn.tree.defaults 重写默认的 defaults. 树(tree)在网页中以树形结构显示分 ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面
http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...
随机推荐
- 总结一下今天做的unity面试题(一):刚体的点击事件
按照需求,由于要模拟丧尸被击中的效果,不能使用CharactorControll组件,只能使用rigidbody组件. 首先在场景上摆好僵尸和相机的位置,这里就不给相机加脚本了,直接固定住. 然后给丧 ...
- 关于模拟http请求 cookie的赋值
最近的工作一直是关于模拟http请求方面的知识的. 原本以为很简单,就是简单模拟一下http请求.先用fiddler模拟一下请求,验证接口可用,就直接上代码. 但是在模拟一个联通http的请求时候,我 ...
- winform 移动窗体,和窗体阴影(引用)
无边框窗体移动://窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [D ...
- SQL的多表连接查询
SQL的多表连接查询 多表连接查询具有两种规范,SQL92和SQL99规范. SQL92规范支持下列多表连接查询: (1)等值连接: (2)非等值连接: (3)外连接: (4)广义笛卡尔积: SQL9 ...
- hihoCoder 1432 : JiLi Number(吉利数)
hihoCoder #1432 : JiLi Number(吉利数) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 Driver Ji l ...
- Kerberos是怎么工作的?
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证. 采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证. 关键要素 ...
- 谈谈Memcached与Redis
1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器.其本质上就是一个 ...
- 在ionic/cordova中使用百度地图插件
在ionic项目中,如果想实现定位功能,可以使用ng-cordova提供的cordova-plugin-geolocation. 但由于高墙的缘故,国内andorid环境下,此插件不起作用(ios环境 ...
- session失效
今天写页面时,使用了session 设置session后 跳转页面session就丢失 上网查了一下也没有很好的解决办法 也没有说原因. 在自己本地电脑上写了两个页面测试一下,完全正常.但是上传到服务 ...
- DBUTIL 调用存储过程例子
执行存储过程和执行select查询相比,无非就是SQL语句不同.下面是一个用存储过程查记录的例子.根据你的数据库不同和域对象不同,此代码要修改 Java code ? 1 2 3 4 5 Quer ...