使用字符串绑定TreeView

【解析字符串】 private TreeNode node; private TreeNode parent; private TreeNode root; //解析字符串,绑定到TreeView上 private void ReadNavItems(string text, TreeView tv) { this.disposeTreeNode(); string item = ""; string[] array; foreach (char aChar in text) { if (aChar == '{') { if (item != "") { if (node != null) { parent = node; node = new TreeNode(); node.Text = item; parent.Nodes.Add(node); } else { node = new TreeNode(); node.Text = item; root = node; } item = ""; } } else if (aChar == '}') { if (item != "") { array = item.Split(','); int count = array.Length; for (int i = 0; i < count; i++) { TreeNode child = new TreeNode(); child.Text = array[i].ToString(); node.Nodes.Add(child); child = null; } } item = ""; node = parent; if (parent != null && parent.Parent != null) { parent = parent.Parent as TreeNode; } } else { item += aChar; } } tv.Nodes.Add(root); } //释放资源 private void disposeTreeNode() { node = null; parent = null; root = null; } 【组装字符串】 //组装字符串 private string AssemblyStr() { StringBuilder sb = new StringBuilder(); if (tvMenu.Nodes.Count > 0) { foreach (TreeNode tn in tvMenu.Nodes) { sb.Append("{"); if (tn.Checked) { sb.Append(tn.Text); GetCheckNode(tn, sb); } else { string text = ""; for (int i = 0; i < tn.Text.Length; i++) { text += "0"; } sb.Append(text); } sb.Append("}"); } } return sb.ToString(); } //组装字符串 private void GetCheckNode(TreeNode node, StringBuilder sb) { if (node.Nodes.Count > 0) { sb.Append("{"); foreach (TreeNode tn in node.Nodes) { if (tn.Checked) { if (tn.Nodes.Count > 0) sb.Append(tn.Text); GetCheckNode(tn, sb); } else { if (tn.Nodes.Count > 0) { string text = ""; for (int t = 0; t < tn.Text.Length; t++) { text += "0"; } sb.Append(text); } GetCheckNode(tn, sb); } } if (sb.ToString().EndsWith(",")) sb = sb.Remove(sb.Length - 1, 1); sb.Append("}"); } else { if (node.Checked == true) { sb.Append(node.Text + ","); } else { string text = ""; for (int t = 0; t < node.Text.Length; t++) { text += "0"; } sb.Append(text + ","); } } } 【加载用户权限】 //加载用户权限 private void ReadNavItems(string text, string permission, TreeView tv) { tv.Nodes.Clear(); this.disposeTreeNode(); string item = ""; string userItem = ""; string[] array; char[] charU = permission.ToCharArray(); char[] charP = text.ToCharArray(); for (int j = 0; j < charU.Length; j++) { if (charP[j] == '{') { if (item != "") { if (node != null) { parent = node; node = new TreeNode(); node.Text = item; if (charP[j - 1].Equals(charU[j - 1])) { tv.AfterCheck -= new TreeViewEventHandler(tvMenu_AfterCheck); node.Checked = true; } parent.Nodes.Add(node); } else { node = new TreeNode(); node.Text = item; root = node; if (charP[j - 1] == charU[j - 1]) { tv.AfterCheck -= new TreeViewEventHandler(tvMenu_AfterCheck); node.Checked = true; } } item = ""; userItem = ""; } } else if (charP[j] == '}') { if (item != "") { array = item.Split(','); var arrayList = userItem.Split(','); int count = array.Length; for (int i = 0; i < count; i++) { TreeNode child = new TreeNode(); child.Text = array[i].ToString(); node.Nodes.Add(child); if (arrayList[i] == array[i]) { tv.AfterCheck -= new TreeViewEventHandler(tvMenu_AfterCheck); child.Checked = true; } child = null; } } item = ""; userItem = ""; node = parent; if (parent != null && parent.Parent != null) { parent = parent.Parent as TreeNode; } } else { item += charP[j]; userItem += charU[j]; } } tv.Nodes.Add(root); } 字符串格式 {OA{ 综合行政{ 考勤管理{ 工作时间设定{ 保存,清空,修改,删除 } 上班签到签退{ 保存,清空,修改,删除 } 补签申请{ 保存,清空,修改,删除 } 请假申请{ 保存,清空,修改,删除 } 外出申请{ 保存,清空,修改,删除 } 加班申请{ 保存,清空,修改,删除 } 出差申请{ 保存,清空,修改,删除 } 考勤检索{ 检索,导出,打印,删除 } 我的考勤申请{ 检索,导出,打印,删除 } 待审核申请{ 保存,清空,修改,删除,审核,拒审 } 已审批申请{ 检索,导出,打印,删除 } } 会议管理 { 会议室{ 检索,导出,打印,删除 } 会议申请{ 保存,清空,修改,删除 } 会议通知{ 检索,导出,打印,删除 } 会议记录{ 检索,导出,打印,删除 } 会议室检索{ 检索,导出,打印,删除 } 会议申请检索{ 检索,导出,打印,删除 } 会议通知检索{ 检索,导出,打印,删除 } 会议记录检索{ 检索,导出,打印,删除 } 会议决议{ 检索,导出,打印,删除 } 待审核会议{ 检索,导出,打印,删除,审核,拒审 } 已审核会议{ 检索,导出,打印,删除 } } 车辆管理{ 添加车辆{ 保存,清空,修改,删除 } 用车申请{ 保存,清空,修改,删除 } 加油记录{ 检索,导出,打印,删除 } 维修记录{ 检索,导出,打印,删除 } 保养记录{ 检索,导出,打印,删除 } 年检记录{ 检索,导出,打印,删除 } 保险记录{ 检索,导出,打印,删除 } 违章记录{ 检索,导出,打印,删除 } 事故记录{ 检索,导出,打印,删除 } 车辆检索{ 检索,导出,打印,删除 } 车花费检索{ 检索,导出,打印,删除 } 我的申请{ 保存,清空,修改,删除 } 待审核车辆{ 检索,导出,打印,删除,审核,拒审 } 已审核车辆{ 检索,导出,打印,删除 } 车辆预警{ 检索,导出,打印,删除 } } 办公用品{ 入库记录{ 检索,导出,打印,删除 } 用品档案{ 检索,导出,打印,删除 } 用品分类{ 检索,导出,打印,删除 } 用品检索{ 检索,导出,打印,删除 } 分类检索{ 检索,导出,打印,删除 } 领用记录{ 检索,导出,打印,删除 } 用品申请{ 保存,清空,修改,删除 } 库存检索{ 检索,导出,打印,删除 } 入库检索{ 检索,导出,打印,删除 } 领用检索{ 检索,导出,打印,删除 } 我的用品申请{ 保存,清空,修改,删除 } 待审核用品{ 保存,清空,修改,删除,审核,拒审 } 已审核用品{ 检索,导出,打印,删除 } 缺货预警{ 检索,导出,打印,删除 } } 图书管理{ 图书分类{ 检索,导出,打印,删除 } 图书登记{ 保存,清空,修改,删除 } 借阅登记{ 保存,清空,修改,删除 } 返还登记{ 保存,清空,修改,删除 } 图书检索{ 检索,导出,打印,删除 } 借阅检索{ 检索,导出,打印,删除 } 返还检索{ 检索,导出,打印,删除 } } 固定资产管理{ 资产类别{ 检索,导出,打印,删除 } 折旧类别{ 检索,导出,打印,删除 } 资产登记{ 保存,清空,修改,删除 } 资产检索{ 检索,导出,打印,删除 } 折旧检索{ 检索,导出,打印,删除 } } } 信息发布{ 公告 { 发布公告{ 保存,清空,修改,删除 } 已发公告{ 检索,导出,打印,删除 } 已收公告{ 检索,导出,打印,删除 } 待审核公告{ 检索,导出,打印,删除,审核,拒审 } 已审核公告{ 检索,导出,打印,删除 } 公告收藏{ 检索,导出,打印,删除,收藏 } 草稿箱{ 检索,导出,打印,删除,放入草稿箱 } } 通知 { 发布通知{ 保存,清空,修改,删除 } 已发通知{ 检索,导出,打印,删除 } 已收通知{ 检索,导出,打印,删除 } 待审核通知{ 检索,导出,打印,删除,审核,拒审 } 已审核通知{ 检索,导出,打印,删除 } 通知收藏{ 检索,导出,打印,删除,收藏 } 草稿箱{ 检索,导出,打印,删除,放入草稿箱 } } } 任务管理{ 新建任务{ 保存,清空,修改,删除 } 任务跟踪{ 检索,导出,打印,删除 } 任务打分{ 保存,清空,修改,删除 } 任务检索{ 检索,导出,打印,删除 } 已点评任务检索{ 检索,导出,打印,删除 } } 目标管理 { 目标拟定{ 保存,清空,修改,删除 } 目标检索{ 检索,导出,打印,删除 } 我的目标{ 检索,导出,打印,删除 } 待审核目标{ 检索,导出,打印,删除,审核,拒审 } 已审核目标{ 检索,导出,打印,删除 } 目标检查{ 检索,导出,打印,删除,审核,拒审 } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值