Exemplo n.º 1
0
        public static List <JqgridTreeData> GetTreeData <T>(
            Func <T, List <T>, List <T>, JqgridTreeData> act, List <T> lstSource)
        {
            List <JqgridTreeData> lst = new List <JqgridTreeData>();
            List <T> lstAdded         = new List <T>();


            foreach (T a in lstSource)
            {
                JqgridTreeData obj = new JqgridTreeData();

                var d = act(a, lstAdded, lstSource);
                if (d != null)
                {
                    lst.Add(d);
                }
            }
            return(lst);
        }
Exemplo n.º 2
0
        public static List <JqgridTreeData> GetTreeDataTemp <T>(List <T> lstParent, List <T> lstAll, string strID, string strName, string strParent, int iLevel)
        {
            var lstRet = new List <JqgridTreeData>();

            MemberFactory <T> t = new MemberFactory <T>();

            foreach (var a in lstParent)
            {
                var d = new JqgridTreeData()
                {
                    id       = t.GetValue(a, strID).ToString(),
                    text     = t.GetValue(a, strName).ToString(),
                    level    = iLevel,
                    isLeaf   = false,
                    loaded   = true,
                    expanded = true
                };

                //所有子节点
                var lstTemp = lstAll.FindAll(e => t.GetValue(e, strParent).ToString() == d.id);
                if (lstTemp.Count == 0)
                {
                    d.isLeaf = true;
                }

                //移除已经处理的节点
                lstTemp.ForEach(e => lstAll.Remove(e));

                lstAll.Remove(a);

                //添加子节点及递归子节点的子节点
                GetTreeDataTemp <T>(lstTemp, lstAll, strID, strName, strParent, iLevel + 1);

                lstRet.Add(d);
            }

            // iLevel++;

            return(lstRet);
        }