/// <summary> /// 根据指定的父ID获取其下面一级(仅限一级)的菜单列表 /// </summary> /// <param name="PID">菜单父ID</param> public List <MenuInfo> GetMenuById(string Pgid, IsVisable isVisable = IsVisable.是, IsDelete isDelete = IsDelete.否) { string sql = string.Format(@"Select t.*,case Pgid when '-1' then '0' else Pgid end as parentId From {1} t Where Pgid='{0}' and (IsVisable = {2} or 0 = {2}) and (IsDelete = {3} or 0 = {3}) Order By Seq ", Pgid, tableName, (short)isVisable, (short)isDelete); return(GetList(sql, null)); }
/// <summary> /// 获取第一级的菜单列表 /// </summary> public List <MenuInfo> GetTopMenu(string systemtypeId, IsVisable isVisable = IsVisable.是, IsDelete isDelete = IsDelete.否) { string condition = !string.IsNullOrEmpty(systemtypeId) ? string.Format("AND SystemtypeId='{0}'", systemtypeId) : ""; string sql = string.Format("Select * From {0} Where (IsVisable = {2} or 0 = {2}) and (IsDelete = {3} or 0 = {3}) and Pgid='-1' {1} Order By Seq ", tableName, condition, (short)isVisable, (short)isDelete); return(GetList(sql, null)); }
/// <summary> /// 获取所有的菜单列表 /// </summary> public List <MenuInfo> GetAllMenu(string systemtypeId, IsVisable isVisable = IsVisable.是, IsDelete isDelete = IsDelete.否) { string condition = !string.IsNullOrEmpty(systemtypeId) ? string.Format("Where SystemtypeId='{0}' and (IsVisable = {1} or 0 = {1}) and (IsDelete = {2} or 0 = {2})", systemtypeId, (short)isVisable, (short)isDelete) : string.Format("Where (IsVisable = {0} or 0 = {0}) and (IsDelete = {1} or 0 = {1})", (short)isVisable, (short)isDelete); string sql = string.Format("Select * From {0} {1} Order By Pgid, Seq ", tableName, condition); return(GetList(sql, null)); }
private MenuNodeInfo GetNode(string gid, DataTable dt, IsVisable isVisable = IsVisable.是, IsDelete isDelete = IsDelete.否) { MenuInfo menuInfo = this.FindById(gid); MenuNodeInfo menuNodeInfo = new MenuNodeInfo(menuInfo); string sort = string.Format("{0} {1}", GetSafeFileName(sortField), isDescending ? "DESC" : "ASC"); DataRow[] dChildRows = dt.Select(string.Format(" Pgid='{0}' and (IsVisable = {1} or 0 = {1}) and (IsDelete = {2} or 0 = {2})", gid, (short)isVisable, (short)isDelete), sort); for (int i = 0; i < dChildRows.Length; i++) { string childId = dChildRows[i]["Gid"].ToString(); MenuNodeInfo childNodeInfo = GetNode(childId, dt, isVisable); menuNodeInfo.Children.Add(childNodeInfo); } return(menuNodeInfo); }
/// <summary> /// 获取指定菜单下面的树形列表 /// </summary> /// <param name="mainMenuID">指定菜单ID</param> public List <MenuNodeInfo> GetTreeById(string mainMenuId, IsVisable isVisable = IsVisable.是, IsDelete isDelete = IsDelete.否) { List <MenuNodeInfo> arrReturn = new List <MenuNodeInfo>(); string sql = string.Format("Select * From {0} Where (IsVisable = {1} or 0 = {1}) Order By Pgid, Seq ", tableName, (short)isVisable); DataTable dt = SqlTable(sql); string sort = string.Format("{0} {1}", GetSafeFileName(sortField), isDescending ? "DESC" : "ASC"); DataRow[] dataRows = dt.Select(string.Format(" Pgid = '{0}' and (IsVisable = {1} or 0 = {1}) and (IsDelete = {2} or 0 = {2})", mainMenuId, (short)isVisable, (short)isDelete), sort); for (int i = 0; i < dataRows.Length; i++) { string id = dataRows[i]["Gid"].ToString(); MenuNodeInfo menuNodeInfo = GetNode(id, dt); arrReturn.Add(menuNodeInfo); } return(arrReturn); }
/// <summary> /// 获取树形结构的菜单列表 /// </summary> public List <MenuNodeInfo> GetTree(string systemtypeId, IsVisable isVisable = IsVisable.是, IsDelete isDelete = IsDelete.否) { string condition = !string.IsNullOrEmpty(systemtypeId) ? string.Format("AND SystemtypeId='{0}'", systemtypeId) : ""; List <MenuNodeInfo> arrReturn = new List <MenuNodeInfo>(); string sql = string.Format("Select * From {0} Where (IsVisable = {2} or 0 = {2}) {1} Order By Pgid, Seq ", tableName, condition, (short)isVisable); DataTable dt = base.SqlTable(sql); string sort = string.Format("{0} {1}", GetSafeFileName(sortField), isDescending ? "DESC" : "ASC"); DataRow[] dataRows = dt.Select(string.Format(" Pgid = '{0}' ", -1), sort); for (int i = 0; i < dataRows.Length; i++) { string id = dataRows[i]["Gid"].ToString(); MenuNodeInfo menuNodeInfo = GetNode(id, dt); arrReturn.Add(menuNodeInfo); } return(arrReturn); }