Пример #1
0
        private void StartBuildTreeView()
        {
            maxlevel = template.Fields.Max(x => x.Level);
            var currentLevel = 1;

            var dt = dynamicQueryForGeneral.GetData(currentLevel);

#if alexj
            dt = AuthorizationRules.EntityInstancesResolution(dt, template.Entity, Session["SystemUser.objID"].ToString());
            dt.Columns.Remove("objID");
#endif

            //Если что то пошло не так!
            if (dt.Rows.Count == 0)
            {
                return;
            }

            tree.Nodes.Add(
                CreateNewHeaderNode(template.Fields.Where(x => x.Level == currentLevel).ToList()));

            foreach (DataRow row in dt.Rows)
            {
                var node = CreateNewNode(row, currentLevel);

                TreeNodeCollection collect = BuildChildNodes(row, currentLevel);
                FillNode(collect, ref node);

                tree.Nodes.Add(node);
            }
            MainView.ActiveViewIndex = 2;
        }
Пример #2
0
        private TreeNodeCollection BuildChildNodesChildren(DataRow row)
        {
            var currentLevel = 1;

            dynamicQueryForChildren.parent = "parentID = " + row["objID"].ToString();
            var dt = dynamicQueryForChildren.GetData(currentLevel, row);

#if alexj
            dt = AuthorizationRules.EntityInstancesResolution(dt, template.Entity, Session["SystemUser.objID"].ToString());
            //dt.Columns.Remove("objID");
#endif

            TreeNode nodeContainer = new TreeNode();
            if (dt.Rows.Count != 0)
            {
                nodeContainer.ChildNodes.Add(
                    CreateNewHeaderNode(template.Fields.Where(x => x.Level == currentLevel).ToList()));
            }

            foreach (DataRow item in dt.Rows)
            {
                var node = CreateFirstNode_Children(item, currentLevel);
                TreeNodeCollection collection = BuildChildNodesChildren(item); //, currentLevel);
                FillNode(collection, ref node);
                nodeContainer.ChildNodes.Add(node);
            }
            return(nodeContainer.ChildNodes);
        }