• 递归循环组织机构


    using DBUtility;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Script.Serialization;
    
    namespace ReportTool.Handler
    {
        /// <summary>
        /// Tree 的摘要说明
        /// </summary>
        public class Tree2 : IHttpHandler
        {
            public DataProvider dataprovider = new DataProvider();
            public Tree2()
            {
                dataprovider.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnString2"].ConnectionString;
            }
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                GetTreeJson(context);
            }
            private void GetTreeJson(HttpContext context)
            {
                DataTable dt = new DataTable();
                var sql = @"
    select OUID,ParentOUID,OUCode,OUName,OUShortName from tbl_Base_OUInfo where LEN(oucode) in(5,10,15,20) 
    order by LEN(oucode),OrderNo,ParentOUID";
                dt = dataprovider.FillDataTable(sql, CommandType.Text);
                string json = GetArrayJSON(dt);
                context.Response.Write(json.Replace(""OUName"", ""text"").Replace(""OUID"", ""id""));
            }
    
            private static string GetArrayJSON(DataTable dt)
            {
                var o = DatatableToTreeData(dt);
                return new JavaScriptSerializer().Serialize(o);
            }
            private static object DatatableToTreeData(DataTable dtConvert)
            {
                var list = DatatableToHash(dtConvert);
                var r = new List<Hashtable>();
                Hashtable root = new Hashtable();
                //中国石油
                //root = list.Find(p => p["OUID"].ToString() == "00000000-0000-0000-0000-000000000000");
                //集团公司
                root = list.Find(p => p["OUID"].ToString() == "CCB93E1A-CC22-4120-B99F-62E941CC6E4A".ToLower());
                TreeData(list, root, "CCB93E1A-CC22-4120-B99F-62E941CC6E4A".ToLower());
                r.Add(root);
                return r;
            }
            
            private static Hashtable TreeData(List<Hashtable> list, Hashtable r, string pouid)
            {
    
                var list1 = list.FindAll(p => p["ParentOUID"].ToString() == pouid);
                if (list1.Count > 0)
                {
                    
                    //var pitem = r as Hashtable;
                    if (!r.ContainsKey("children"))
                    r["children"] = new List<Hashtable>();
                    var children = r["children"] as List<Hashtable>;
    
                    foreach (var item in list1)
                    {
                        TreeData(list, item, item["OUID"].ToString());
                        children.Add(item);
                    }
                }
                return r;
            }
            private static List<Hashtable> DatatableToHash(DataTable dtConvert)
            {
                var list = new List<Hashtable>();
    
                int j;
    
                foreach (DataRow dr in dtConvert.Rows)
                {
                    var item = new Hashtable();
                    j = 0;
    
                    foreach (DataColumn dc in dtConvert.Columns)
                    {
                        var name = dc.ColumnName;
                        var value = dr[j];
    
                        item[name] = value;
    
                        j++;
                    }
                    list.Add(item);
                }
                return list;
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    

      

  • 相关阅读:
    oracle-DML-2
    Oracle--DML
    jquery 调用asp.net后台代码
    hdu--1505--稍微特别的子矩阵求和<修改第一次发表的错误>--<增加stack写法>
    hdu--2159--二维费用背包<一维错误解法>
    hdu--2571--dp
    hdu--1231&&1003--dp
    hdu--1251--字典树
    hdu--1075--字典树||map
    hdu--1421--dp&&滚动数组
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/6951896.html
Copyright © 2020-2023  润新知