Asp.net下拉树实现(Easy UI ComboTree)

public class Unit
{
        public decimal id { get; set; }
        public string text { get; set; }
        public string state { get; set; }
        public List<Unit> children { get; set; }
        public Unit ()
        {
            this.children = new List<Unit>();
            this.state = "open";
        }
}
public class UnitComponent
 {
        ExeceteOralceSqlHelper SqlHelper= new ExeceteOralceSqlHelper();//数据库处理类
        public UnitParent GetUnit()
        {
            Unit rootUnit = new Unit();
            rootUnit.id = 1000;
            rootUnit.text = "BO API";
            rootUnit.children = GetUnitList(0);
            UnitRecursive(rootUnit.children);
            return rootUnit;
        }

        /// <summary>
        /// 递归查询部门
        /// </summary>
        /// <param name="units"></param>
        private void UnitRecursive(List<Unit> units)
        {
            foreach (var item in units)
            {
                item.children = GetUnitList(item.id);
                if (item.children != null && item.children.Count > 0)
                {
                    item.state = "closed";
                    UnitRecursive(item.children);
                }
            }
        }

        /// <summary>
        /// 通过parentID获取所有子部门
        /// </summary>
        /// <param name="parentID">父id</param>
        /// <returns>返回Unit集合</returns>
        private List<Unit> GetUnitList(decimal parentID)
        {
            List<Unit> unitLst = new List<Unit>();
            string sql = string.Format("select hh.unit_id,hh.unit_name from unit_main hh where hh.parent_id={0}", parentID);
            DataTable dt = SqlHelper.ExecuteDataTable(sql);//返回DataTable方法
            if (dt != null && dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Unit dtup = new Unit()
                    {
                        id = Convert.ToInt32(dt.Rows[i]["unit_id"]),
                        text = dt.Rows[i]["unit_name"].ToString()
                    };
                    unitLst.Add(dtup);
                }
            }
            return unitLst;
        }
}
public void ProcessRequest(HttpContext context)
{
      JavaScriptSerializer js = new JavaScriptSerializer();
      context.Response.ContentType = "application/json";
      UnitComponent uc = new SynUser.UnitComponent();
      var unit = uc.GetUnit();
      context.Response.Write("[" + js.Serialize(unit) + "]");
}

 

posted @ 2015-09-01 21:02  wjl910  阅读(148)  评论(0)    收藏  举报