/// <summary> /// 获取树形结构的机构列表 /// </summary> public List <OUNodeInfo> GetTree() { List <OUNodeInfo> arrReturn = new List <OUNodeInfo>(); string sql = string.Format("Select * From {0} Order By PID, Name ", tableName); DataTable dt = base.SqlTable(sql); string sort = string.Format("{0} {1}", GetSafeFileName(sortField), isDescending ? "DESC" : "ASC"); DataRow[] dataRows = dt.Select(string.Format(" PID = {0} ", -1), sort); for (int i = 0; i < dataRows.Length; i++) { string id = dataRows[i]["ID"].ToString(); OUNodeInfo menuNodeInfo = GetNode(id, dt); arrReturn.Add(menuNodeInfo); } return(arrReturn); }
/// <summary> /// 获取树形结构的机构列表 /// </summary> public List <OUNodeInfo> GetTree(IsDelete isDelete = IsDelete.否, IsForbid isForbid = IsForbid.否) { List <OUNodeInfo> arrReturn = new List <OUNodeInfo>(); string sql = string.Format("Select * From {0} Order By Pid, Name ", tableName); DataTable dt = base.SqlTable(sql); string sort = string.Format("{0} {1}", GetSafeFileName(sortField), isDescending ? "DESC" : "ASC"); DataRow[] dataRows = dt.Select(string.Format(" Pid = {0} and (IsDelete = {1} or 0 = {1}) and (IsForbid = {2} or 0 = {2})", -1, (short)isDelete, (short)isForbid), sort); for (int i = 0; i < dataRows.Length; i++) { Int32 id = dataRows[i]["Id"].ToString().ToInt32(); OUNodeInfo menuNodeInfo = GetNode(id, dt); arrReturn.Add(menuNodeInfo); } return(arrReturn); }
private List <OUNodeInfo> GetRecursionOu(DataTable dt, Int32 mainOUId, IsDelete isDelete = IsDelete.否, IsForbid isForbid = IsForbid.否) { List <OUNodeInfo> arrReturn = new List <OUNodeInfo>(); string sort = string.Format("{0} {1}", GetSafeFileName(sortField), isDescending ? "DESC" : "ASC"); DataRow[] dataRows = dt.Select(string.Format(" Pid = {0} and (IsDelete = {1} or 0 = {1}) and (IsForbid = {2} or 0 = {2})", mainOUId, (short)isDelete, (short)isForbid), sort); for (int i = 0; i < dataRows.Length; i++) { Int32 Id = dataRows[i]["Id"].ToString().ToInt32(); OUNodeInfo menuNodeInfo = GetNode(Id, dt); arrReturn.Add(menuNodeInfo); // 判断是否存在子节点,如果存在递归 DataRow[] dataRowsChildNodes = dt.Select(string.Format(" Pid = {0} and (IsDelete = {1} or 0 = {1}) and (IsForbid = {2} or 0 = {2})", Id, (short)isDelete, (short)isForbid), sort); if (dataRowsChildNodes.Length > 0) { menuNodeInfo.Children = GetRecursionOu(dt, Id); } } return(arrReturn); }
/// <summary> /// 获取集团和公司的树形结构列表 /// </summary> /// <returns></returns> public List <OUNodeInfo> GetGroupCompanyTree() { List <OUNodeInfo> list = new List <OUNodeInfo>(); //顶级OU的PID=-1 为集团OU节点 List <OUInfo> ouList = GetTopGroup(); foreach (OUInfo groupOU in ouList) { if (groupOU != null) { OUNodeInfo groupNodeInfo = new OUNodeInfo(groupOU); List <OUInfo> companyList = GetAllCompany(groupOU.ID); foreach (OUInfo info in companyList) { groupNodeInfo.Children.Add(new OUNodeInfo(info)); } list.Add(groupNodeInfo); } } return(list); }