权限树的使用

权限

权限加载/权限遍历/权限添加/权限删除

权限树加载

1
2
3
trevzqx.Nodes.Clear();//清空树节点
setTreeView(trevzqx, 0);//总权限树加载
trevzqx.ExpandAll();//展开根节点

绑定数据库权限树加载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/// <summary>
/// 加载权限
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//调用的时候parentId以0值开始 setTreeView(treeView1, 0);
private void setTreeView(TreeView tr1, int parentId)
{
string nihao = comboBox1.SelectedValue.ToString();
string sql = "SELECT id,nodeName,parentId FROM TreeTest tt LEFT JOIN tb_user_type ty ON ty.btnid=tt.id WHERE ty.usertype='" + nihao + "'and tt.parentId='" + parentId + "'ORDER BY tt.id ASC";
// string sql = "select * from tb_user_type ,TreeTest where parentId=" + parentId;
DataTable ds = SqlHelper.ExecuteDataTable(sql);
if (ds.Rows.Count > 0)
{
int pId = -1;
foreach (DataRow row in ds.Rows)
{
TreeNode node = new TreeNode();
node.Text = row["nodeName"].ToString();
node.Tag = (int)row["id"];
pId = (int)row["parentId"];
if (pId == 0)
{
//添加根节点
tr1.Nodes.Add(node);
}
else
{
//添加根节点之外的其他节点
RefreshChildNode(tr1, node, pId);
}
//查找以node为父节点的子节点
setTreeView(tr1, (int)node.Tag);
}
}
}
//处理根节点的子节点
private void RefreshChildNode(TreeView tr1, TreeNode treeNode, int parentId)
{
foreach (TreeNode node in tr1.Nodes)
{
if ((int)node.Tag == parentId)
{
node.Nodes.Add(treeNode);
return;
}
else if (node.Nodes.Count > 0)
{
FindChildNode(node, treeNode, parentId);
}
}
}
//处理根节点的子节点的子节点
private void FindChildNode(TreeNode tNode, TreeNode treeNode, int parentId)
{
foreach (TreeNode node in tNode.Nodes)
{
if ((int)node.Tag == parentId)
{
node.Nodes.Add(treeNode);
return;
}
else if (node.Nodes.Count > 0)
{
FindChildNode(node, treeNode, parentId);
}
}
}

权限遍历

1
2
3
4
5
6
7
8
9
10
MenuDAL dal = new MenuDAL();
List<MenuModel> objList = dal.findMyObjByRoleId(((LoginForm)this.Owner).cbxtype.SelectedValue.ToString());
if (objList.Count > 0)
{
foreach (MenuModel obj in objList)
{
if ("主页" == obj.nodeName)
{
this.tabPage1.Parent = tabControl1;
}

权限添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/// <summary>
/// 添加权限
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAddTotal_Click(object sender, EventArgs e)//添加父节点
{
if (tvquanxian.SelectedNode == null)
{
MessageBox.Show("请选择权限");
return;
}
/* if (string.IsNullOrEmpty(textBox1.Text.Trim()))//添加节点
{
MessageBox.Show("请填写要添加的节点名称!");
return;
}*/
string id = tvquanxian.SelectedNode.Tag.ToString();
string nihao = comboBox1.SelectedValue.ToString();
PermitModel obj = new PermitModel();
obj.usertype = nihao;
obj.btnid = id;
PermitDAL dal = new PermitDAL();
int num = dal.findObjCountByUserquanxian(obj);
if (0 == num)
{
string sql = "insert into tb_user_type values(newid(),'" + nihao + "','" + tvquanxian.SelectedNode.Tag.ToString() + "'" + ")";
id = (string)SqlHelper.ExecuteScalar(sql);
TreeNode node1 = new TreeNode();
node1.Tag = id;
node1.Text = tvquanxian.SelectedNode.Text.ToString();
trevzqx.Nodes.Clear();//清空树节点
setTreeView(trevzqx, 0);//总权限树加载
trevzqx.ExpandAll();
MessageBox.Show("添加权限成功!");
}
else MessageBox.Show("添加失败,请核实后添加权限!");
//tvquanxian.Nodes.Add(node1);
//textBox1.Text = "";
}

权限遍历删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/// <summary>
/// 删除权限
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDelete_Click(object sender, EventArgs e)
{
if (trevzqx.SelectedNode == null)
{
MessageBox.Show("请选择要删除的节点!");
return;
}
//选中节点的主键id,也是其子节点的parentId
int id = (int)trevzqx.SelectedNode.Tag;
nodeDelete(id);
trevzqx.SelectedNode.Remove();
}
//数据表中的数据的递归删除方法
public void nodeDelete(int id)
{
string nihao = comboBox1.SelectedValue.ToString();
string sql = "SELECT id,nodeName,parentId FROM TreeTest tt LEFT JOIN tb_user_type ty ON ty.btnid=tt.id WHERE ty.usertype='" + nihao + "'and tt.parentId=" + id;
// string sql = "select * from TreeTest where parentId=" + id;
DataTable ds = SqlHelper.ExecuteDataTable(sql);
if (ds.Rows.Count > 0)
{
//有子节点
foreach (DataRow row in ds.Rows)
{
//先删除父节点
string delete = "delete from tb_user_type where usertype='" + nihao + "'and btnid=" + id;
int k = SqlHelper.ExecuteNonQuery(delete);
//查找子节点,删除
int id1 = (int)row["id"];
nodeDelete(id1);
}
}
else
{
//没有子节点
string delete = "delete from tb_user_type where usertype='" + nihao + "'and btnid=" + id;
int k = SqlHelper.ExecuteNonQuery(delete);
MessageBox.Show("删除成功");
}
}

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 权限
    1. 1.1. 权限树加载
    2. 1.2. 权限遍历
    3. 1.3. 权限添加
    4. 1.4. 权限遍历删除

热评文章