easyui-tree根据叶子节点获取父节点值(N层)
16lz
2021-01-22
easyui-tree根据叶子节点获取父节点值(N层)
思路:将叶子节点的id值用字符串拼接,如:叶子节点id=“根节点id-父节点id-叶子节点id”,用“-”间隔来取值。
easyui-tree根据叶子节点获取父节点值(N层)
html:
<div class="easyui-panel" style="padding:5px;height: 840px;"> <ul id="myTree" class="easyui-tree"></ul> </div>
easyui-tree根据叶子节点获取父节点值(N层)
<script type="text/javascript"> //加载tree function LoadTree() { $.ajax({ type: "GET", url: "/Rights/Job/GetTreeJson", success: function (result) { var myJson = eval('(' + result + ')'); $("#myTree").tree({ data: myJson, onlyLeafCheck: false,//仅叶子节点可以被选中 checkbox: false,//开启多选框 }); } }); } //初始化 $(function () { LoadTree(); }); //点击左侧列表 $(function () { $("#DataGrid").datagrid({ onClickRow: function (index, row) { //var JobID = row.JobID; if ($("#divTabs").tabs("exists", "范围设置")) { $("#divTabs").tabs("select", "范围设置"); } CheckTree(); } }); }); //tree编辑的按钮 $(function () { $("#btn_FW_Edit").click(function () { var rows = $("#DataGrid").datagrid("getSelections"); if (rows.length != 1) { alert("请左边列表中选择一个[岗位]!"); return; } else { CheckTree(); } }); }); function CheckTree() { $("#div_FW_Edit").hide(); $("#div_FW_Save").show(); $("#myTree").tree({ //onlyLeafCheck: true,//仅叶子节点可以被选中 checkbox: true,//开启多选框 }); //先将回显数据全部清除 var root = $("#myTree").tree("getRoot"); $("#myTree").tree("uncheck", root.target); var rows = $("#DataGrid").datagrid("getSelections"); var id = rows[0].JobID; $.ajax({ url: "/Rights/JobViewRange/BindTree", data: { JobID: id, }, success: function (data) { for (x in data) { var node = $("#myTree").tree("find", data[x].RangeValue); $("#myTree").tree("check", node.target); } } }); } //保存勾选的tree $(function () { $("#btn_FW_Save").click( function () { var rows = $("#DataGrid").datagrid("getSelections"); if (rows.length != 1) { alert("请左边列表中选择一个[岗位]!"); return; } else { var id = rows[0].JobID; var BrandID = rows[0].BrandID; //tree选中项目: var nodes = $("#myTree").tree("getChecked"); var res_id = ''; for (var i = 0; i < nodes.length; i++) { if (res_id != '') res_id += ','; res_id += nodes[i].id; } if (res_id == '') { alert("请选择[范围值]!"); return; } //alert(res_id); $.ajax({ type: "POST", url: "/Rights/JobViewRange/SaveTree", data: { JobID: id, RangeValue: res_id, BrandID: BrandID, }, success: function (data) { if (data == "OK") { alert("修改成功!"); LoadTree(); //document.getElementById('frameExecute').contentWindow.location.reload(true); } else { alert(data); } } }); } }); }); </script>
easyui-tree根据叶子节点获取父节点值(N层)
public ActionResult SaveTree() { UserInformation user = RequestUserSession.GetSessionUser(); int JobID = 0; int.TryParse(Request["JobID"], out JobID); int BrandID = 0; int.TryParse(Request["BrandID"], out BrandID); string RangeValueTemp = Request["RangeValue"]; if (JobID == 0) return Content("保存失败"); if (string.IsNullOrEmpty(RangeValueTemp)) return Content("保存失败"); string[] arrTemp = RangeValueTemp.Split(','); List<JobViewRange> jvrList = new List<JobViewRange>(); if (arrTemp != null) { foreach (var temp in arrTemp) { if (temp.Length > 3 && temp.Contains('-')) { string[] arrValue = temp.Split('-'); if (arrValue != null && arrValue.Length == 4) { var jvr = jvrList.Find(a => a.JobID == JobID && a.ModuleID == int.Parse(arrValue[0].ToString()) && a.MenuID == int.Parse(arrValue[1].ToString()) && a.RangeType == arrValue[2].ToString() ); var jvrIndex = jvrList.FindIndex(a => a.JobID == JobID && a.ModuleID == int.Parse(arrValue[0].ToString()) && a.MenuID == int.Parse(arrValue[1].ToString()) && a.RangeType == arrValue[2].ToString() ); if (jvr != null) { jvr.RangeValue = jvr.RangeValue + "," + arrValue[3];//用,逗号拼接RangeValue值 jvrList.RemoveAt(jvrIndex);//移除旧的 jvrList.Add(jvr);//添加新的 } else { JobViewRange job = new JobViewRange(); job.JobID = JobID; job.ModuleID = int.Parse(arrValue[0].ToString()); job.MenuID = int.Parse(arrValue[1].ToString()); job.RangeType = arrValue[2]; job.RangeValue = arrValue[3]; job.BrandID = BrandID; job.CreateBy = user.UserName; job.CreateDate = DateTime.Now; job.UpdateBy = user.UserName; job.UpdateDate = DateTime.Now; jvrList.Add(job); } } } } if (jvrList.Any()) { foreach (var job in jvrList) { var b = JobViewRangeService.SaveTree(job); } return Content("OK"); } } return Content("保存失败"); } public ActionResult BindTree() { int JobID = 0; int.TryParse(Request["JobID"], out JobID); if (JobID == 0) return null; List<JobViewRange> tempList = JobViewRangeService.BindTree(JobID); if (tempList != null) { List<JobViewRange> list = new List<JobViewRange>(); foreach (var temp in tempList) { string[] arr = temp.RangeValue.Split(','); foreach (var RangeValue in arr) { JobViewRange job = new JobViewRange(); job.RangeValue = temp.ModuleID + "-" + temp.MenuID + "-" + temp.RangeType + "-" + RangeValue; list.Add(job); } } return Json(list, JsonRequestBehavior.AllowGet); } return null; }
easyui-tree根据叶子节点获取父节点值(N层)
public string GetTreeJson() { var module = GetModule(); if (module != null && module.Any()) { string jsonData = "["; module.ForEach(a => { jsonData += "{"; jsonData += "\"id\":\"" + a.ModuleID + "\","; jsonData += "\"text\":\"" + a.ModuleName + "\","; jsonData += "\"children\":["; var menu = GetMenu(a.ModuleID); menu.ForEach(b => { jsonData += "{"; jsonData += "\"id\":\"" + b.MenuID + "\","; jsonData += "\"text\":\"" + b.MenuName + "\","; jsonData += "\"children\":["; var rangeType = GetRangeType(b.MenuID); rangeType.ForEach(c => { jsonData += "{"; jsonData += "\"id\":\"" + c.RangeType + "\","; jsonData += "\"text\":\"" + c.RangeTypeName + "\","; jsonData += "\"children\":["; var rangeValue = GetRangeValue(b.MenuID, c.RangeType); rangeValue.ForEach(d => { jsonData += "{"; //jsonData += "\"id\":\"" + d.Value + "\","; jsonData += "\"id\":\"" + a.ModuleID + "-" + b.MenuID + "-" + c.RangeType + "-" + d.Value + "\",";//模块id-菜单id-范围类型-范围值id 如:1-1-T_Brand-1;就能根据此叶子节点id值split('-') jsonData += "\"text\":\"" + d.Text + "\""; jsonData += "}"; jsonData += ","; }); jsonData = jsonData.TrimEnd(','); jsonData += "]}"; jsonData += ','; }); jsonData = jsonData.TrimEnd(','); jsonData += "]}"; jsonData += ','; }); jsonData = jsonData.TrimEnd(','); jsonData += "]}"; jsonData += ','; }); jsonData = jsonData.Substring(0, jsonData.Length - 1); jsonData += "]"; return jsonData; } return ""; }easyui-tree根据叶子节点获取父节点值(N层)
更多相关文章
- PHP递归函数删除所有子节点导致stackoverflow
- php时间函数——获取过去24小时内每个小时的节点
- 以完整二叉树,数组格式获取所有节点
- 使用PHP读取特定XML节点上特定数组的值
- 节点js / Express替换LAMP
- 剑指offer--链表中环的入口节点(PHP)
- 尝试使用PHP和MySQL获取节点的路径
- 如何从一个节点生成exe文件。js应用?
- 前端笔记之JavaScript(十)深入JavaScript节点&DOM&事件