1. 程式人生 > 其它 >DWZ框架實現簡單的樹,並獲取選中節點的返回值

DWZ框架實現簡單的樹,並獲取選中節點的返回值

技術標籤:菜鳥成長之路樹結構資料結構

需求:

許可權管理,一個使用者可以選擇一個角色,並確定一個科目,根據科目選擇科目擁有的組。

分析:

構造一個三層樹,第一層為角色,第二層為科目,第三層為分組,且第三層分組屬於第二層科目的一個屬性。

資料格式:

角色返回jsdmList:
[{“JSDM”:1,“JSMC”:“角色1”},{“JSDM”:2,“JSMC”:“角色2”},{“JSDM”:3,“JSMC”:“角色3”},{“JSDM”:4,“JSMC”:“角色4”}]
科目返回kmxxList:
[{“科目屬性1”:null,“科目屬性2”:null,“KMDM”:“001”,“KMMC”:“科目1”,

“fzxxList”:[{“KMDM”:“001”,“FZMC”:“分組1組”,“FZID”:0001},{“KMDM”:“001”,“FZMC”:“分組2”,“FZID”:0002},{“KMDM”:“001”,“FZMC”:“分組3”,“FZID”:0003}]},{…}]

遍歷返回集合,畫樹

var qxTreeStr="";
				 for(var i=0;i<jsdmList.length;i++){
					var jsdmMap = jsdmList[i];
					qxTreeStr = "<li><a href='#' tname='first' tvalue='"
+jsdmMap["JSDM"]+"'>"+jsdmMap["JSMC"]+"</a><ul>" for (var j=0;j<kmdmList.length;j++){ var kmdmMap = kmdmList[j]; qxTreeStr += "<li><a href='#' tname='second' tvalue='"+kmdmMap["KMDM"]+"'>"
+kmdmMap["KMMC"]+"</a><ul>"; var fzxxList = kmdmMap["fzxxList"]; for(var k=0;k<fzxxList.length;k++){ var fzxxMap = fzxxList[k]; qxTreeStr +="<li><a href='#' tname='third' tvalue='"+jsdmMap["JSDM"]+"_"+kmdmMap["KMDM"]+"_"+fzxxMap["FZID"]+"'>"+fzxxMap["FZMC"]+"</a></li>"; } qxTreeStr +="</ul></li>"; } qxTreeStr +="</ul></li>"; $("#treeBox").append(qxTreeStr); } //重新載入樹形結構 $("#treeBox").jTree();

獲取樹的選中節點資料

構建一個點選事件,呼叫方法獲取選中節點資料,因為需要三層結構的value值,所以把三層結構的value拼串給第三層,根據上面生成樹是第三層的value結構為jsdm_kmdm_fzid,只需要獲取第三層的value,之後在後臺解析json陣列就好。
獲取資料:

		var thirdlist = "";
		//jquery迴圈treeBox下的所有選中的複選框
		$("input[name='third']:checked").each(function(){
			 thirdlist += $(this).val() + ",";
		});

後臺解析

String qxxx = request.getParameter("qxxx");
				String[] qxxxArr = qxxx.split(",");
				qxxx = qxxx.contains(",")?qxxx.substring(0,qxxx.length()-1):qxxx;
				String jsdm="";
				String kmdm="";
				String fzid="";
for(int j=0; j<qxxxArr.length;j++){
						HashMap paramMap=new HashMap();
						jsdm=qxxxArr[j].substring(0,qxxxArr[j].indexOf("_"));
						kmdm=qxxxArr[j].substring(qxxxArr[j].indexOf("_")+1,qxxxArr[j].lastIndexOf("_"));
						fzid=qxxxArr[j].substring(qxxxArr[j].lastIndexOf("_")+1,qxxxArr[j].length());
						paramMap.put("jsdm", jsdm);
						paramMap.put("kmdm", kmdm);
						paramMap.put("fzid", fzid);
					IbatisDAO.updateByIbatis("UpdateQx", paramMap);
					}

如有錯誤或建議,感謝指正!