文档章节

用递归方式实现带层级表数据的无线级联树形显示,并转换成JsonArray返回前端

最深的夜
 最深的夜
发布于 2016/06/02 17:43
字数 236
阅读 1K
收藏 5
private int iLength=0;
	/**
	 * 用递归方式实现无限级联
	 * @return 
	 * 
	 *   |第一层
	 *   |—第二层
	 *   |—|—第三层
	 */
public JSONArray getAll() {
		LinkedHashMap<String, String> mapDepart = new LinkedHashMap<String, String>();
		LinkedHashMap<String, String> departList = getNode("0010aae53b864f7ca440811a37716cc6",mapDepart);
		
		//将linkedHashMap转化为json对象
		JSONArray jsonArray = new JSONArray();
		for (String key : departList.keySet()) {
			JSONObject json = new JSONObject();
			json.put("ids", key);
			json.put("departName", departList.get(key));
			jsonArray.add(json);
		}
		//返回jsonarray
		return jsonArray;
	}
	//按照层数生成"|—"
private String genHeng(int iLength){
		String sHeng = "";
		for (int i = 0; i < iLength; i++) {
			sHeng+="|—";
		}
		return sHeng;
	}
	//利用递归生成无限级联的树形结构
private LinkedHashMap<String, String> getNode(String parentIds,LinkedHashMap<String, String> mapDepart){
		Depart depart = Depart.dao.findById(parentIds);
		mapDepart.put(depart.getIds(), genHeng(iLength)+depart.getDepartName());
		List<Record> listDepart = Db.find("Select * from depart where pDepartIds=?",parentIds);
		//有父节点为parentIds的子节点
		for (Record record : listDepart) {
			iLength++;
			mapDepart.put(record.getStr(Depart.column_ids), genHeng(iLength)+record.getStr(Depart.column_departName));
			getNode(record.getStr(Depart.column_ids), mapDepart);
			iLength--;
		}
		return mapDepart;
		
	}

数据表depart结构是 ids,departName,pDepartIds

最深的夜
粉丝 0
博文 7
码字总数 4171
作品 0
潍坊
程序员
私信 提问
加载中
请先登录后再评论。

暂无文章

如何处理ASP.NET MVC Framework中的多个提交按钮?

问题: Is there some easy way to handle multiple submit buttons from the same form? 是否有一些简单的方法可以处理来自同一表单的多个提交按钮? Example: 例: <% Html.BeginForm("MyA......

技术盛宴
54分钟前
13
0
Android NDK 工具链的使用方法(Standalone Toolchain)

首先需要确定目标机器的指令集。 如果是 x86 的机器,用 x86-4.4.3 版本的工具链;如果是 arm 指令的,用 arm-linux-androideabi-4.4.3 版本 (x86-4.4.3 和 arm-linux-androideabi-4.4.3 位于...

shzwork
今天
29
0
给定两个目录树,如何找出哪些文件有所不同? - Given two directory trees, how can I find out which files differ?

问题: If I want find the differences between two directory trees, I usually just execute: 如果我想找到两个目录树之间的差异,我通常只执行: diff -r dir1/ dir2/ This outputs ex......

法国红酒甜
今天
17
0
互联网领域唯一一家!百度牵头“工业智能实验室”入选工业互联网产业联盟实验室首批名单

本文作者:y****n 6月30日,工业互联网产业联盟首批实验室名单公布,百度牵头申报的“工业智能实验室”成功入选,百度在工业互联网领域领先的技术实力获得业界认可。 工业互联网产业联盟(简...

百度开发者中心
昨天
13
0
jQuery Ajax文件上传 - jQuery Ajax File Upload

问题: Can I use the following jQuery code to perform file upload using POST method of an ajax request ? 我可以使用以下jQuery代码使用ajax请求的POST方法执行文件上传吗? $.ajax({......

javail
今天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部