Ejemplo n.º 1
0
    private void BindCategoriesTreeStructure()
    {
        TreeNodes = new BbTreeView();

        List <Category>        allCategories  = NewsManager.GetAllCategories().ToList <Category>();
        IEnumerable <Category> rootCategories = from x in allCategories where x.ParentCategory == null select x;

        List <BbTreeViewNode> nodes = new List <BbTreeViewNode>();

        foreach (Category rootCategory in rootCategories)
        {
            if (UserHasPermission(rootCategory.Id))
            {
                BbTreeViewNode node = new BbTreeViewNode(rootCategory.Id, rootCategory.Name, false, PathIconBranch, null);
                node.Menu.AddRange(CreateContextMenuContent(rootCategory.Id, rootCategory.Name));
                if (ShowItemCount)
                {
                    node.Value += " " + GetDisplayItemCount(rootCategory);
                }

                nodes.Add(node);
                BuildCategoriesTreeStructure(node, allCategories, rootCategory, maxLevel, 0);
            }
        }
        TreeNodes.Nodes.AddRange(nodes);
    }
Ejemplo n.º 2
0
    private void AddChildNodes(BbTreeViewNode rootNode, RadTreeNode rootNodeRad)
    {
        foreach (BbTreeViewNode childNode in rootNode.ChildNodes)
        {
            RadTreeNode radChildNode = new RadTreeNode(childNode.Value + childNode.Menu, childNode.Id)
            {
                ImageUrl = childNode.Icon
            };

            RadTreeView1.FindNodeByValue(rootNodeRad.Value).Nodes.Add(radChildNode);

            if (childNode.IsBranch)
            {
                AddChildNodes(childNode, radChildNode);
            }
        }
    }
Ejemplo n.º 3
0
    private void BuildCategoriesTreeStructure(BbTreeViewNode rootNode, IList <Category> allCategories, Category category, int maxLevel, int level)
    {
        if (level > maxLevel)
        {
            return;
        }

        var subCategories = from x in allCategories where (x.ParentCategory == null) ? 1 == 0 : x.ParentCategory.Equals(category) select x;

        foreach (Category subCategory in subCategories)
        {
            BbTreeViewNode categoryNode = new BbTreeViewNode(subCategory.Id, subCategory.Name, false, PathIconBranch, rootNode);
            categoryNode.Menu.AddRange(CreateContextMenuContent(subCategory.Id, subCategory.Name));
            if (ShowItemCount)
            {
                categoryNode.Value += " " + GetDisplayItemCount(subCategory);
            }

            if (UserHasPermission(subCategory.Id))
            {
                if (UserHasPermission(rootNode.Id))
                {
                    rootNode.ChildNodes.Add(categoryNode);
                }
                else
                {
                    BbTreeViewNode tempNode = rootNode.ParentNode;
                    bool           parentWithPermissionFound = false;
                    while (!parentWithPermissionFound && (tempNode != null))
                    {
                        if (UserHasPermission(tempNode.Id))
                        {
                            tempNode.ChildNodes.Add(categoryNode);
                            parentWithPermissionFound = true;
                        }
                        else
                        {
                            tempNode = tempNode.ParentNode;
                        }
                    }
                }
            }
            BuildCategoriesTreeStructure(categoryNode, allCategories, subCategory, maxLevel, ++level);
        }
    }