/// <summary> /// 删除一级菜单,其下子菜单必须为空 /// </summary> /// <param name="menuid">要删除的一级菜单ID</param> /// <returns>操作成功否</returns> public static bool DeleteMainMenu(int menuid) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList mainmenus = doc.SelectNodes("/dataset/toptabmenu"); XmlNode delMenu = null; int newid = menuid; bool result = false; foreach (XmlNode menuitem in mainmenus) { if (menuitem["id"].InnerText == menuid.ToString()) { if (menuitem["mainmenulist"].InnerText.Trim() != "") return false; delMenu = menuitem; result = true; break; } else { if (delMenu != null) { menuitem["id"].InnerText = newid.ToString(); newid++; } } } if (result) { delMenu.ParentNode.RemoveChild(delMenu); doc.Save(configPath); } return result; }
/// <summary> /// 增加子菜单 /// </summary> /// <param name="mainmenuid">主菜单ID</param> /// <param name="menutitle">子菜单标题</param> /// <returns>新建子菜单ID</returns> public static int NewSubMenu(int mainmenuid, string menutitle) { int newid = 1; int newmenuid = 100; XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList submains = doc.SelectNodes("/dataset/mainmenu"); newid += int.Parse(submains.Item(submains.Count - 1)["id"].InnerText); newmenuid += int.Parse(submains.Item(submains.Count - 1)["menuid"].InnerText); XmlElement mainmenu = doc.CreateElement("mainmenu"); XmlElement node = doc.CreateElement("id"); node.InnerText = newid.ToString(); mainmenu.AppendChild(node); node = doc.CreateElement("menuid"); node.InnerText = newmenuid.ToString(); mainmenu.AppendChild(node); node = doc.CreateElement("menutitle"); node.InnerText = menutitle; mainmenu.AppendChild(node); doc.SelectSingleNode("/dataset").AppendChild(mainmenu); XmlNodeList mainMenus = doc.SelectNodes("/dataset/toptabmenu"); foreach (XmlNode menuItem in mainMenus) //查找主菜单信息 { if (menuItem["id"].InnerText == mainmenuid.ToString()) { menuItem["mainmenulist"].InnerText += "," + newid; menuItem["mainmenuidlist"].InnerText += "," + newmenuid; menuItem["mainmenulist"].InnerText = menuItem["mainmenulist"].InnerText.TrimStart(','); menuItem["mainmenuidlist"].InnerText = menuItem["mainmenuidlist"].InnerText.TrimStart(','); break; } } doc.Save(configPath); return newmenuid; }
/// <summary> /// 增加主菜单 /// </summary> /// <param name="title">主菜单标题</param> /// <param name="defaulturl">主菜单默认展开的页面</param> /// <returns>新主菜单项ID</returns> public static int NewMainMenu(string title, string defaulturl) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList mainmenus = doc.SelectNodes("/dataset/toptabmenu"); int newMenuId = mainmenus.Count + 1; XmlElement newMainMenuItem = doc.CreateElement("toptabmenu"); XmlElement node = doc.CreateElement("id"); node.InnerText = newMenuId.ToString(); newMainMenuItem.AppendChild(node); node = doc.CreateElement("title"); node.InnerText = title; newMainMenuItem.AppendChild(node); node = doc.CreateElement("mainmenulist"); node.InnerText = ""; newMainMenuItem.AppendChild(node); node = doc.CreateElement("mainmenuidlist"); node.InnerText = ""; newMainMenuItem.AppendChild(node); node = doc.CreateElement("defaulturl"); node.InnerText = defaulturl; newMainMenuItem.AppendChild(node); node = doc.CreateElement("system"); node.InnerText = "0"; newMainMenuItem.AppendChild(node); doc.SelectSingleNode("/dataset").AppendChild(newMainMenuItem); doc.Save(configPath); return newMenuId; }
/// <summary> /// 新建菜单项 /// </summary> /// <param name="menuparentid">父菜单ID</param> /// <param name="title">菜单标题</param> /// <param name="link">菜单链接</param> /// <returns>操作成功否</returns> public static bool NewMenuItem(int menuparentid, string title, string link) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList submains = doc.SelectNodes("/dataset/submain"); foreach (XmlNode sub in submains) { if (sub["link"].InnerText == link) { return false; } } XmlElement submain = doc.CreateElement("submain"); XmlElement node = doc.CreateElement("menuparentid"); node.InnerText = menuparentid.ToString(); submain.AppendChild(node); node = doc.CreateElement("menutitle"); node.InnerText = title; submain.AppendChild(node); node = doc.CreateElement("link"); node.InnerText = link; submain.AppendChild(node); node = doc.CreateElement("frameid"); node.InnerText = "main"; submain.AppendChild(node); doc.SelectSingleNode("/dataset").AppendChild(submain); doc.Save(configPath); return true; }
/// <summary> /// 编辑子菜单 /// </summary> /// <param name="submenuid">子菜单ID</param> /// <param name="menutitle">子菜单标题</param> /// <returns>操作成功否</returns> public static bool EditSubMenu(int submenuid, string menutitle) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList submains = doc.SelectNodes("/dataset/mainmenu"); bool result = false; foreach (XmlNode menuItem in submains) { if (menuItem["id"].InnerText == submenuid.ToString()) { menuItem["menutitle"].InnerText = menutitle; result = true; break; } } if (result) { doc.Save(configPath); } return result; }
/// <summary> /// 编辑菜单项 /// </summary> /// <param name="id">菜单项的序号</param> /// <param name="title">菜单项的标题</param> /// <param name="link">菜单项的链接</param> /// <returns>操作成功否</returns> public static bool EditMenuItem(int id, string title, string link) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList submains = doc.SelectNodes("/dataset/submain"); int rowcount = 0; foreach (XmlNode sub in submains) { if (rowcount.ToString() != id.ToString() && sub["link"].InnerText == link) { return false; } rowcount++; } string tmpLink = submains.Item(id)["link"].InnerText; submains.Item(id)["menutitle"].InnerText = title; submains.Item(id)["link"].InnerText = link; XmlNodeList shortcuts = doc.SelectNodes("/dataset/shortcut"); foreach (XmlNode shortmenuitem in shortcuts) { if (shortmenuitem["link"].InnerText == tmpLink) { shortmenuitem["link"].InnerText = link; shortmenuitem["menutitle"].InnerText = title; break; } } doc.Save(configPath); return true; }
/// <summary> /// 编辑一级主菜单 /// </summary> /// <param name="menuid">一级主菜单的ID</param> /// <param name="title">一级主菜单标题</param> /// <param name="defaulturl">一级主菜单默认展开的页面</param> /// <returns>操作成功否</returns> public static bool EditMainMenu(int menuid, string title, string defaulturl) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList mainmenus = doc.SelectNodes("/dataset/toptabmenu"); bool result = false; foreach (XmlNode menuitem in mainmenus) { if (menuitem["id"].InnerText == menuid.ToString()) { menuitem["title"].InnerText = title; menuitem["defaulturl"].InnerText = defaulturl; result = true; break; } } if (result) { doc.Save(configPath); } return result; }
/// <summary> /// 删除子菜单 /// </summary> /// <param name="submenuid">子菜单ID</param> /// <param name="mainmenuid">主菜单ID</param> /// <returns>操作成功否</returns> public static bool DeleteSubMenu(int submenuid, int mainmenuid) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList submains = doc.SelectNodes("/dataset/mainmenu"); bool result = false; string menuid = ""; foreach (XmlNode menuItem in submains) { if (menuItem["id"].InnerText == submenuid.ToString()) { menuid = menuItem["menuid"].InnerText; XmlNodeList items = doc.SelectNodes("/dataset/submain"); foreach (XmlNode item in items) { if (item["menuparentid"].InnerText == menuid) return false; } menuItem.ParentNode.RemoveChild(menuItem); result = true; break; } } XmlNodeList mainMenus = doc.SelectNodes("/dataset/toptabmenu"); foreach (XmlNode menuItem in mainMenus) //查找主菜单信息 { if (menuItem["id"].InnerText == mainmenuid.ToString()) { menuItem["mainmenulist"].InnerText = ("," + menuItem["mainmenulist"].InnerText + ",").Replace("," + submenuid + ",", ","); menuItem["mainmenuidlist"].InnerText = ("," + menuItem["mainmenuidlist"].InnerText + ",").Replace("," + menuid + ",", ","); menuItem["mainmenulist"].InnerText = menuItem["mainmenulist"].InnerText.TrimStart(',').TrimEnd(','); menuItem["mainmenuidlist"].InnerText = menuItem["mainmenuidlist"].InnerText.TrimStart(',').TrimEnd(','); break; } } if (result) { doc.Save(configPath); } return result; }
/// <summary> /// 删除菜单项 /// </summary> /// <param name="id">菜单项的序号</param> public static void DeleteMenuItem(int id) { XmlDocumentExtender doc = new XmlDocumentExtender(); doc.Load(configPath); XmlNodeList submains = doc.SelectNodes("/dataset/submain"); string link = submains.Item(id)["link"].InnerText; submains.Item(id).ParentNode.RemoveChild(submains.Item(id)); XmlNodeList shortcuts = doc.SelectNodes("/dataset/shortcut"); foreach (XmlNode shortmenuitem in shortcuts) { if (shortmenuitem["link"].InnerText == link) { shortmenuitem.ParentNode.RemoveChild(shortmenuitem); break; } } doc.Save(configPath); }