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开 ...
随机推荐
- 山东省第七届ACM省赛------Triple Nim
Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing all kinds o ...
- XCode与Git的完美融合,不再依赖其它Git客户端
Git源代码管理工具的出现,使得我们开发人员对于源码的管理更加方便快捷.至于Git的优点以及与其他源代码管理工具有何区别,不是本文的重点,如果想深入了解可以搜索一下这方面的文章.下面直接进入主题,如何 ...
- 【转】封装Lua for C#
原文:http://blog.csdn.net/rcfalcon/article/details/5583095 为了搞懂LUA在我们的GDEX中到底怎么用,我决定研究一下如何比较好的在WPF里封装一 ...
- 基于springMVC+angular+bootstrap+mysql的简易购物网站搭建
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&cad=rja& ...
- AIDMA VS AISAS vs ISMAS 营销法则
AIDMA法则与传统媒体时代 引起注意——产生兴趣——培养欲望——形成记忆——购买行动 注:AIDMA,传统消费者行为学理论模型,即:Attention(引起注意),Interest (引起兴趣),D ...
- MySQL 5.6 双机热备windows7
MySQL 5.6 双机热备 目录: 1.说明 2.数据手工同步 3.修改主数据库配置文件 4.修改从数据库配置文件 5.主数据库添加备份用户 6.从数据库设置为Slave 7.验证 1.说明 1)数 ...
- AFNetworking的POST上传
- (void)download { // 1.创建网络管理者 // AFHTTPSessionManager 基于NSURLSession AFHTTPSessionManager *manager ...
- XAF视频教程来啦,已出15课
第一到第七课在这里: http://www.cnblogs.com/foreachlife/p/xafvideo_1_6.html 视频地址:http://i.youku.com/i/UMTI5OTE ...
- 如何隐藏winform中报表设计器中的按钮
https://www.devexpress.com/Support/Center/Question/Details/T246117 DesignMdiController.SetCommandVis ...
- djangocms安装技巧
首先python的版本要高一些,否则安装django-cms会报错 安装cmsinstaller不能够正常下载 利用virtualenv进行安装配置 注意中文的配置 djangocms配置中文 dja ...