网上最多的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 异步树的实现的更多相关文章

  1. Easyui 异步树直接所有展开

    初始化异步树直接所有展开代码: $(function(){ $('#tt').tree({ url:'<%=request.getContextPath()%>/treeInit', li ...

  2. EasyUI的功能树之异步树

    最近几个项目都用到了EasyUI这个Jquery框架,目前感觉起来还是很好使的,展示效果很好,帮助文档什么的资料很多,而且互联网上Easy粉很多,大多数拥护和喜爱EasyUI的粉丝们都愿意在网络平台互 ...

  3. EasyUI tree 异步树与采用扁平化实现的同步树

    所谓好记性不如烂笔头,为了以防忘记,才写下这篇博客,废话不多.. 异步树: tips:   可以采用easyui里的原始数据格式,也可以采用扁平化的数据格式. 使用场景: 当菜单模块数量庞大或者无限极 ...

  4. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  5. 基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  6. 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  7. easyui 获取树的平级根节点的父节点&选择性展示树的一个根节点

    1.easyui的树的根节点一般是几个平级的,怎样获取这些父节点的id? 可以将获取到的平级根节点放在一个数组中 var roots=[]; roots=$("#tree1").t ...

  8. EasyUI Tree 树

    转自:http://www.jeasyui.net/plugins/185.html 通过 $.fn.tree.defaults 重写默认的 defaults. 树(tree)在网页中以树形结构显示分 ...

  9. (转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

随机推荐

  1. hybird混合式开发搭建

    1.xml <?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android=&qu ...

  2. GoLang语言

    1 Go语言基础 1.1 语法详解 1.1.1 注释 /* regexp 包为正则表达式实现了一个简单的库. 该库接受的正则表达式语法为: 正则表达式: 串联 { '|' 串联 } 串联: { 闭包 ...

  3. FireMonkey 保存图片到JPG的方法 BMP转JPG

    习惯VCL的做法了,到了FireMonkey里面,好像查不到单独的JPEG单元了,不少朋友就郁闷如何处理JPG了,这么大件事,不可能没有处理方法的,具体就请看代码: uses FMX.Surfaces ...

  4. [JAVA] java class 基本定义 Note

    java class 基本定义 Note 1 package abeen.note; 2 import java.util.*; 3 4 5 /* 6 java calss 基本 7 */ 8 pub ...

  5. apache2.4配置访问日志分割并过滤图片CSS等无用内容

    相关信息 1.apache日志有访问日志和错误日志,错误日志根据日志级别来输出错误信息,而访问日志根据定义的日志格式来记录访问动作 2.访问日志格式在httpd.conf文件里面定义,在虚拟主机里面引 ...

  6. LAMP环境搭建 (原创帖,转载请注明出处)

    =============================说在前面的话==========================第一安装Mysql第二安装Apache-httpd第三安装PHP 第四配置PH ...

  7. C#数组

    数组是一种数据结构,它包含若干相同类型的变量.数组是使用类型声明的: type[] arrayName; 下面的示例创建一维.多维和交错数组: class TestArraysClass { stat ...

  8. One Step github链接

    分享一下锤科的开源应用: https://github.com/SmartisanTech/android 官方简介: http://v.youku.com/v_show/id_XMTc2Nzg1Nj ...

  9. Spring MVC之@RequestBody, @ResponseBody 详解

    http://blog.csdn.net/kobejayandy/article/details/12690555

  10. Canvas的API整理

    canvas元素 可被用来通过脚本(通常是JavaScript)绘制图形.比如,它可以被用来绘制图形,制作图片集合,甚至用来实现动画效果.你可以(也应该)在元素标签内写入可提供替代的的代码内容,这些内 ...