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); }
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); } } }
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); } }