private XmlDocument getXmlDocument() { BLL.tb_SYS_Account bllAccount = new BLL.tb_SYS_Account(); DataTable dtAccount = bllAccount.GetList("ID='" + Session["AccountID"] + "'").Tables[0]; BLL.tb_SYS_RoleXML bllRoleXML = new BLL.tb_SYS_RoleXML(); DataTable dtRoleXML = bllRoleXML.GetList("RoleID='" + dtAccount.Rows[0]["RoleID"].ToString() + "'").Tables[0]; XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(dtRoleXML.Rows[0]["XML"].ToString()); return(xmlDocument); }
//删除选中记录集 protected void btnDelete_Click(object sender, EventArgs e) { string id = gridRole.DataKeys[gridRole.SelectedRowIndex][0].ToString(); BLL.tb_SYS_Role bllRole = new BLL.tb_SYS_Role(); string result = bllRole.Delete(id); if (result == "0") { Alert.ShowInTop("删除成功", "提示信息", MessageBoxIcon.Information); BindGrid(); } else { hdfMarkRawNO.Text = gridRole.SelectedRowIndex.ToString(); Alert.ShowInTop("该项被其他项引用,不能删除!", "提示信息", MessageBoxIcon.Error, "highlightRows();"); } BLL.tb_SYS_RoleXML bllRoleXML = new BLL.tb_SYS_RoleXML(); bllRoleXML.Delete(id); BLL.tb_SYS_RoleMenu bllRoleMenu = new BLL.tb_SYS_RoleMenu(); bllRoleMenu.Delete("RoleID='" + id + "'"); }
//存储XML private void saveXml() { BLL.vw_SYS_Menu bllMenu_vw = new BLL.vw_SYS_Menu(); DataSet dsXmlResource = bllMenu_vw.GetList("1=1 order by MenuNO,ParentName"); BLL.vw_SYS_RoleMenu bllRoleMenu_vw = new BLL.vw_SYS_RoleMenu(); DataSet dsRemove = bllRoleMenu_vw.GetListNotInRoleMenu(Request.QueryString["ID"].ToString()); XmlDocument xmlSource = new XmlDocument(); XmlDeclaration xmlDeclaration = xmlSource.CreateXmlDeclaration("1.0", "utf-8", null); xmlSource.AppendChild(xmlDeclaration); XmlElement element = xmlSource.CreateElement("Tree"); xmlSource.AppendChild(element); #region 载入全部菜单 string parentName; foreach (DataRow dr in dsXmlResource.Tables[0].Rows) { if (dr["MenuNO"].ToString() == "0") { continue; } parentName = dr["ParentName"].ToString(); element = xmlSource.CreateElement("TreeNode"); element.SetAttribute("Text", dr["MenuName"].ToString()); if (dr["MenuUrl"].ToString() != "") { element.SetAttribute("NavigateUrl", dr["MenuUrl"].ToString()); } else { element.SetAttribute("SingleClickExpand", "true"); } if (dr["MenuNO"].ToString() == "1") { xmlSource.SelectSingleNode("Tree").AppendChild(element); } else { xmlSource.SelectSingleNode("//TreeNode[@Text='" + parentName + "']").AppendChild(element); } } #endregion #region 移除没有访问权限的菜单 XmlNode node; foreach (DataRow dr in dsRemove.Tables[0].Rows) { node = xmlSource.SelectSingleNode("//TreeNode[@Text='" + dr["MenuName"].ToString() + "']"); xmlSource.SelectSingleNode("//TreeNode[@Text='" + dr["ParentName"].ToString() + "']").RemoveChild(node); } #endregion #region 移除没有子节点的中间节点 XmlNodeList xmlList = xmlSource.SelectNodes("//TreeNode[not(@NavigateUrl)]"); foreach (XmlNode xmlNode in xmlList) { if (!xmlNode.HasChildNodes) { xmlNode.ParentNode.RemoveChild(xmlNode); } } #endregion Model.tb_SYS_RoleXML modelRoleXML = new Model.tb_SYS_RoleXML(); modelRoleXML.RoleID = Request.QueryString["ID"].ToString(); modelRoleXML.XML = PublicMethod.convertXmlToString(xmlSource); modelRoleXML.State = "0"; modelRoleXML.UpdateID = Session["AccountID"].ToString(); modelRoleXML.UpdateTime = DateTime.Now; BLL.tb_SYS_RoleXML bllRoleXML = new BLL.tb_SYS_RoleXML(); if (!bllRoleXML.Update(modelRoleXML)) { modelRoleXML.UpdateID = null; modelRoleXML.UpdateTime = null; modelRoleXML.ID = Guid.NewGuid().ToString(); modelRoleXML.CreateID = Session["AccountID"].ToString(); modelRoleXML.CreateTime = DateTime.Now; bllRoleXML.Add(modelRoleXML); } }