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开 ...
随机推荐
- mysql中正则表达式的使用
mysql中正则表达式的性能要高于like,所以这里总结一下正则表达式的使用. 正则表达式的模式及其含义: 下面举例说明其用法: 建表student: create table student(id ...
- AOP报错:Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut
Spring3.x升级4.x时遇到的,JDK版本1.7 aspectj版本问题,1.6.x升级到1.7.x,解决!
- build.gradle文件介绍
对于以前用Eclipse开发安卓的小伙伴来说,Gradle文件是陌生的. 不同于Eclipse,而Android Studio 是采用Gradle来构建项目的. 先来介绍最外层目录下的build.gr ...
- mongoose操作汇总。嘻嘻
MongoDb 命令查询所有数据库列表 CODE: > show dbs 如果想查看当前连接在哪个数据库下面,可以直接输入db CODE: > db Admin 想切换到test数 ...
- 解析xml并且导入mysql
https://www.zhihu.com/question/28139319 解析超过500G的xml 写入mysql,如何尽快写入? 解析超过500G的xml 写入mysql,如何尽快写入? 现在 ...
- PAT算法题学习笔记
1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...
- QT连接MySQL
Qt 连接MySQL 是件很简单的事,但也有可能很不简单. QT给我们的提示只有 QMYSQL driver not loaded,让我们毫无头绪.访问其他数据库也可以用同样的方法解决. Qt 访问 ...
- [原创]Keil uVision4 安装破解
Keil uVision4 安装没什么特别的,跟一般Windows软件安装方法相同,这里不再赘述. 安装完成界面如下图,未破解之前,点击编译,下载等选项都会出现未响应提示,软件会卡死.下面进行软件破解 ...
- 换个新的思路 代替解压jar包 例证:wechat4j 框架中的templateMsg类
很多朋友在写java的程序的时候都喜欢用第三方的jar包和框架,有可能遇到jar包中的内容已经跟不上官方开发者文档的更新,导致部分内容出错了,这个时候可能就要放弃这个jar的使用,但是这个jar中的其 ...
- 利用scrapy-splash爬取JS生成的动态页面
目前,为了加速页面的加载速度,页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无 ...