【解析字符串】
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{
综合行政{
考勤管理{
工作时间设定{
保存,清空,修改,删除
}
上班签到签退{
保存,清空,修改,删除
}
补签申请{
保存,清空,修改,删除
}
请假申请{
保存,清空,修改,删除
}
外出申请{
保存,清空,修改,删除
}
加班申请{
保存,清空,修改,删除
}
出差申请{
保存,清空,修改,删除
}
考勤检索{
检索,导出,打印,删除
}
我的考勤申请{
检索,导出,打印,删除
}
待审核申请{
保存,清空,修改,删除,审核,拒审
}
已审批申请{
检索,导出,打印,删除
}
}
会议管理
{
会议室{
检索,导出,打印,删除
}
会议申请{
保存,清空,修改,删除
}
会议通知{
检索,导出,打印,删除
}
会议记录{
检索,导出,打印,删除
}
会议室检索{
检索,导出,打印,删除
}
会议申请检索{
检索,导出,打印,删除
}
会议通知检索{
检索,导出,打印,删除
}
会议记录检索{
检索,导出,打印,删除
}
会议决议{
检索,导出,打印,删除
}
待审核会议{
检索,导出,打印,删除,审核,拒审
}
已审核会议{
检索,导出,打印,删除
}
}
车辆管理{
添加车辆{
保存,清空,修改,删除
}
用车申请{
保存,清空,修改,删除
}
加油记录{
检索,导出,打印,删除
}
维修记录{
检索,导出,打印,删除
}
保养记录{
检索,导出,打印,删除
}
年检记录{
检索,导出,打印,删除
}
保险记录{
检索,导出,打印,删除
}
违章记录{
检索,导出,打印,删除
}
事故记录{
检索,导出,打印,删除
}
车辆检索{
检索,导出,打印,删除
}
车花费检索{
检索,导出,打印,删除
}
我的申请{
保存,清空,修改,删除
}
待审核车辆{
检索,导出,打印,删除,审核,拒审
}
已审核车辆{
检索,导出,打印,删除
}
车辆预警{
检索,导出,打印,删除
}
}
办公用品{
入库记录{
检索,导出,打印,删除
}
用品档案{
检索,导出,打印,删除
}
用品分类{
检索,导出,打印,删除
}
用品检索{
检索,导出,打印,删除
}
分类检索{
检索,导出,打印,删除
}
领用记录{
检索,导出,打印,删除
}
用品申请{
保存,清空,修改,删除
}
库存检索{
检索,导出,打印,删除
}
入库检索{
检索,导出,打印,删除
}
领用检索{
检索,导出,打印,删除
}
我的用品申请{
保存,清空,修改,删除
}
待审核用品{
保存,清空,修改,删除,审核,拒审
}
已审核用品{
检索,导出,打印,删除
}
缺货预警{
检索,导出,打印,删除
}
}
图书管理{
图书分类{
检索,导出,打印,删除
}
图书登记{
保存,清空,修改,删除
}
借阅登记{
保存,清空,修改,删除
}
返还登记{
保存,清空,修改,删除
}
图书检索{
检索,导出,打印,删除
}
借阅检索{
检索,导出,打印,删除
}
返还检索{
检索,导出,打印,删除
}
}
固定资产管理{
资产类别{
检索,导出,打印,删除
}
折旧类别{
检索,导出,打印,删除
}
资产登记{
保存,清空,修改,删除
}
资产检索{
检索,导出,打印,删除
}
折旧检索{
检索,导出,打印,删除
}
}
}
信息发布{
公告
{
发布公告{
保存,清空,修改,删除
}
已发公告{
检索,导出,打印,删除
}
已收公告{
检索,导出,打印,删除
}
待审核公告{
检索,导出,打印,删除,审核,拒审
}
已审核公告{
检索,导出,打印,删除
}
公告收藏{
检索,导出,打印,删除,收藏
}
草稿箱{
检索,导出,打印,删除,放入草稿箱
}
}
通知
{
发布通知{
保存,清空,修改,删除
}
已发通知{
检索,导出,打印,删除
}
已收通知{
检索,导出,打印,删除
}
待审核通知{
检索,导出,打印,删除,审核,拒审
}
已审核通知{
检索,导出,打印,删除
}
通知收藏{
检索,导出,打印,删除,收藏
}
草稿箱{
检索,导出,打印,删除,放入草稿箱
}
}
}
任务管理{
新建任务{
保存,清空,修改,删除
}
任务跟踪{
检索,导出,打印,删除
}
任务打分{
保存,清空,修改,删除
}
任务检索{
检索,导出,打印,删除
}
已点评任务检索{
检索,导出,打印,删除
}
}
目标管理
{
目标拟定{
保存,清空,修改,删除
}
目标检索{
检索,导出,打印,删除
}
我的目标{
检索,导出,打印,删除
}
待审核目标{
检索,导出,打印,删除,审核,拒审
}
已审核目标{
检索,导出,打印,删除
}
目标检查{
检索,导出,打印,删除,审核,拒审
}
}
}
}
使用字符串绑定TreeView
最新推荐文章于 2022-04-12 23:37:21 发布