Ejemplo n.º 1
0
        /// <summary>
        ///     加载Json树节点
        /// </summary>
        /// <param name="treeEntitys">TreeEntity的集合</param>
        /// <param name="isexpand">各节点是否展开</param>
        /// <returns></returns>
        protected JsonResult JsonForWdTree(IList <TreeEntity> treeEntitys,
                                           bool isexpand = false)
        {
            IList <WdTreePermission> permissions = null;

            if (treeEntitys == null || treeEntitys.Count <= 0)
            {
                permissions = new List <WdTreePermission>();
                return(Json(permissions, JsonRequestBehavior.AllowGet));
            }
            //判断有多少个模块
            IList <TreeEntity> roots = treeEntitys.Where(f => f.pId.ToString() == Guid.Empty.ToString()).ToList();

            if (roots.Count <= 0)
            {
                permissions = new List <WdTreePermission>();
                return(Json(permissions, JsonRequestBehavior.AllowGet));
            }

            //总模块
            permissions = new List <WdTreePermission>(roots.Count);
            foreach (var root in roots)
            {
                permissions.Add(new WdTreePermission
                {
                    id   = Guid.Parse(root.id.ToString()),
                    icon = root.icon,
                    name = root.name
                });
            }
            //便利子模块
            foreach (var permission in permissions)
            {
                //判断有多少个模块
                IList <TreeEntity> perRoots =
                    treeEntitys.Where(f => f.pId.ToString() == permission.id.ToString()).ToList();
                IList <WdTreeEntity> trees = new List <WdTreeEntity>();
                WdTreeEntity         tree  = null;
                foreach (var treeEntity in perRoots)
                {
                    tree            = new WdTreeEntity(treeEntity);
                    tree.url        = string.IsNullOrEmpty(tree.url) ? "" : tree.url;
                    tree.ChildNodes = GetWdChildNodes(ref treeEntitys, isexpand, treeEntity);
                    trees.Add(tree);
                }
                permission.tree = trees;
                tree            = null;
            }

            return(Json(permissions, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     根据当前节点,加载子节点
        /// </summary>
        /// <param name="treeEntitys">TreeEntity的集合</param>
        /// <param name="isexpand">各节点是否展开</param>
        /// <param name="currTreeEntity">当前节点</param>
        private IList <WdTreeEntity> GetWdChildNodes(ref IList <TreeEntity> treeEntitys,
                                                     bool isexpand,
                                                     TreeEntity currTreeEntity)
        {
            IList <TreeEntity> childNodes =
                treeEntitys.Where(f => f.pId.ToString() == currTreeEntity.id.ToString()).ToList();

            if (childNodes.Count <= 0)
            {
                return(null);
            }
            IList <WdTreeEntity> childTrees = new List <WdTreeEntity>(childNodes.Count);
            WdTreeEntity         tree       = null;

            foreach (var treeEntity in childNodes)
            {
                tree            = new WdTreeEntity(treeEntity);
                tree.url        = string.IsNullOrEmpty(tree.url) ? "" : tree.url;
                tree.isexpand   = isexpand;
                tree.ChildNodes = GetWdChildNodes(ref treeEntitys, isexpand, treeEntity);
                childTrees.Add(tree);
            }
            return(childTrees);
        }