private void btnSaveMenu_Click(object sender, EventArgs e) { int groupID = (int)((ATH_ROLE)cbxRole2.SelectedItem).GROUP_ID; db.Execute("delete ATH_CONTROL_ENABLE where group_id = @0 and control_type =1" , new object[] { groupID }); List<ATH_MAINMENU> lstMenu = db.Fetch<ATH_MAINMENU>(""); for (int i = 0; i < lstMenu.Count; i++) { var o = tvMenu.Nodes.Find(lstMenu[i].ITEMNAME, true)[0]; if (!o.Checked) { ATH_CONTROL_ENABLE ctlEnable = new ATH_CONTROL_ENABLE(); ctlEnable.GROUP_ID = groupID; ctlEnable.CONTROL_NAME = lstMenu[i].ITEMNAME; ctlEnable.CONTROL_CAPTION = lstMenu[i].ITEMCAPTION; ctlEnable.ENABLE = 0; ctlEnable.CONTROL_TYPE = 1; ctlEnable.Insert(); } } // 导航设置 if (bindingSource1.DataSource == null) return; dataGridView1.EndEdit(); aTHCONTROLENABLEBindingSource.EndEdit(); aTHCONTROLENABLEBindingSource.CurrencyManager.EndCurrentEdit(); var oNav = ((List<ATH_CONTROL_ENABLE>)bindingSource1.DataSource); for (int i = 0; i < oNav.Count; i++) { if (oNav[i].IsNew()) oNav[i].Insert(); else if (oNav[i].NeedDelete) oNav[i].Delete(); else oNav[i].Update(); } }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Level == 0) { aTHCONTROLENABLEBindingSource.DataSource = null; return; } int groupID = (int)((ATH_ROLE)cbxRole1.SelectedItem).GROUP_ID; List<ATH_FORMBUTTON> lstBtn = db.Fetch<ATH_FORMBUTTON>(" where FATHERITEM = @0", new object[]{e.Node.Tag.ToString()}); List<ATH_CONTROL_ENABLE> lstCtrlEnable = db.Fetch<ATH_CONTROL_ENABLE>("where group_id = @0 and FATHERITEM = @1", new object[] { groupID, e.Node.Tag.ToString() }); for (int i = 0; i < lstBtn.Count; i++) { var o = lstCtrlEnable.Where(d => d.CONTROL_NAME == lstBtn[i].ITEMNAME); if (o.Count() == 0) { ATH_CONTROL_ENABLE ctrlEnable = new ATH_CONTROL_ENABLE(); ctrlEnable.GROUP_ID = groupID; ctrlEnable.CONTROL_NAME = lstBtn[i].ITEMNAME; ctrlEnable.CONTROL_CAPTION = lstBtn[i].ITEMCAPTION; ctrlEnable.FATHERITEM = lstBtn[i].FATHERITEM; ctrlEnable.CONTROL_TYPE = 0; //ctrlEnable.isNew = true; ctrlEnable.ENABLE = Convert.ToInt32(false); lstCtrlEnable.Add(ctrlEnable); } } // 预删除已不存在的控件授权 for (int i = 0; i < lstCtrlEnable.Count; i++) { var o = lstBtn.Where(d => d.ITEMNAME == lstCtrlEnable[i].CONTROL_NAME); if (o.Count() == 0) { lstCtrlEnable[i].NeedDelete = true; } } aTHCONTROLENABLEBindingSource.DataSource = lstCtrlEnable; }
private void btnRefreshMenu_Click(object sender, EventArgs e) { tvMenu.Nodes.Clear(); int groupID = (int)((ATH_ROLE)cbxRole2.SelectedItem).GROUP_ID; List<ATH_MAINMENU> lstMenu = db.Fetch<ATH_MAINMENU>("where FATHERITEM = '0'"); TreeNode root = new TreeNode("菜单项"); root.Name = "root"; for (int i = 0; i < lstMenu.Count; i++) { TreeNode td = new TreeNode(lstMenu[i].ITEMCAPTION); td.Name = lstMenu[i].ITEMNAME; td.Tag = lstMenu[i].ITEMNAME; root.Nodes.Add(td); GetAllMenu(td, lstMenu[i].ITEMNAME); } tvMenu.Nodes.Add(root); tvMenu.ExpandAll(); // 选中所有节点 btnSelectAllMenu_Click(null, null); // 获取数据库中的权限记录, 取消选中Enable=0的节点 lstMenu = db.Fetch<ATH_MAINMENU>(""); for (int i = 0; i < lstMenu.Count; i++) { if (lstMenu[i].ITEMNAME == "barButtonItem14") { } TreeNode td = tvMenu.Nodes.Find(lstMenu[i].ITEMNAME, true)[0]; List<ATH_CONTROL_ENABLE> ctrlEnable = db.Fetch<ATH_CONTROL_ENABLE>("where GROUP_ID = @0 and CONTROL_NAME = @1 and CONTROL_TYPE = 1 and ENABLE = 0", new object[] { groupID, lstMenu[i].ITEMNAME }); if (ctrlEnable.Count == 1 && ctrlEnable[0].ENABLE == 0) td.Checked = false; } // 导航栏元素全能设置 List<ATH_NAVGATIONITEM> lstBtn = db.Fetch<ATH_NAVGATIONITEM>(""); List<ATH_CONTROL_ENABLE> lstCtrlEnable = db.Fetch<ATH_CONTROL_ENABLE>("where group_id = @0 and control_type = 2", groupID); for (int i = 0; i < lstBtn.Count; i++) { var o = lstCtrlEnable.Where(d => d.CONTROL_NAME == lstBtn[i].ITEMNAME); if (o.Count() == 0) { ATH_CONTROL_ENABLE ctrlEnable = new ATH_CONTROL_ENABLE(); ctrlEnable.GROUP_ID = groupID; ctrlEnable.CONTROL_NAME = lstBtn[i].ITEMNAME; ctrlEnable.CONTROL_CAPTION = lstBtn[i].ITEMCAPTION; ctrlEnable.CONTROL_TYPE = 2; //ctrlEnable.isNew = true; ctrlEnable.ENABLE = Convert.ToInt32(false); lstCtrlEnable.Add(ctrlEnable); } } // 预删除已不存在的控件授权 for (int i = 0; i < lstCtrlEnable.Count; i++) { var o = lstBtn.Where(d => d.ITEMNAME == lstCtrlEnable[i].CONTROL_NAME); if (o.Count() == 0) { lstCtrlEnable[i].NeedDelete = true; } } bindingSource1.DataSource = lstCtrlEnable; }