【项目实战】——Tree树显示过程核心

来源:互联网 发布:检察院 大数据 公司 编辑:程序博客网 时间:2024/06/05 15:49

前言:

最近的项目中用到了曲线,但在这个过程中Tree树的显示是它的基础,不仅用到了一层的Tree,也用到了两层的Tree,小编的上一篇博客中对Tree树进行了简单介绍,这次对于一层和两层的Tree树显示过程中Controller的核心代码进行了总结。

一层的Tree:

效果:


核心代码:

        public ActionResult queryIndicator(int PrjID , int VolunteerGroupID,int VolunteerID )        {            DataTable dt = new DataTable();                       dt = bll.queryIndicator(PrjID,VolunteerGroupID,VolunteerID);            List<JsonTree> list = initTree(dt);            var json = JsonConvert.SerializeObject(list);            return Content(json);        }        //目录树相关        public List<JsonTree> initTree(DataTable dt)        {             DataRow[] drList = dt.Select();            List<JsonTree> rootNode = new List<JsonTree>();            foreach (DataRow dr in drList)            {                JsonTree jt = new JsonTree();                jt.id = Convert.ToInt32(dr["IndicatorCode"]);                jt.iconCls = "icon-blank";                jt.text = dr["IndicatorName"].ToString();                jt.state = "open";                rootNode.Add(jt);            }            return rootNode;        }

两层的Tree树:

效果:


核心代码:

 //(目录树)        public ActionResult GetVolunGroup(int prjID)        {            DataTable dt = new DataTable();            dt = bllVolunBasicMulAna.GetVolunGroup(prjID);            List<JsonTree> list = initTree(dt);            var json = JsonConvert.SerializeObject(list);            return Content(json);        }        //目录树相关        public List<JsonTree> initTree(DataTable dt)        {            DataRow[] drList = dt.Select();//所有表数据            List<JsonTree> parentNodes = new List<JsonTree>();//父级节点            foreach (DataRow dr in drList)            {                JsonTree parentNode = null;                parentNode = parentNodes.Find(e => e.id == Convert.ToInt32(dr["VolunteerGroupID"]));                if (parentNode == null)                {                    parentNode = new JsonTree();                    parentNode.id = Convert.ToInt32(dr["VolunteerGroupID"]);                    parentNode.text = dr["VolunGroupName"].ToString();                    parentNode.state = "closed";                    parentNode.iconCls = "icon-blank";                    //jt.attributes = CreateUrl(dt, jt);                    parentNode.children = CreateChildTree(dt, parentNode);//子集节点                    parentNodes.Add(parentNode);                }                //若该父节点已存在                else                {                    continue;                }            }            return parentNodes;        }

总结:

初次接触感觉很难,要静下心来仔细分析,慢慢就会发现其实并没有想想中的那么难,站在巨人的肩膀上,不断前进。

原创粉丝点击