private static void PopulateTreeNodesRecursive(TreeNode node, SPSNodeCollection dataChildrens, TreeBound delegateBound) { foreach (SPSNodeBase subDataNode in dataChildrens) { TreeNode newNode = new TreeNode(subDataNode.Name, subDataNode.UrlSegment, subDataNode.ImageUrl, subDataNode.NavigateUrl, ""); node.ChildNodes.Add(newNode); Debug.WriteLine(string.Format("-> {0},{1},{2},{3}", subDataNode.Name, subDataNode.UrlSegment, subDataNode.ImageUrl, subDataNode.NavigateUrl)); if (delegateBound != null) { delegateBound(newNode, subDataNode); } PopulateTreeNodesRecursive(newNode, subDataNode.Children, delegateBound); subDataNode.Dispose(); } }
private static TreeNode PopulateTreeNodes(SPSHierarchyDataSource dataSource, TreeBound delegateBound) { TreeNode root; using (SPSNodeCollection dataNodes = dataSource.GetAll()) { SPSNodeBase dataRoot = dataNodes[0]; root = new TreeNode(dataRoot.Name, dataRoot.UrlSegment, dataRoot.ImageUrl, dataRoot.NavigateUrl, ""); if (delegateBound != null) { delegateBound(root, dataRoot); } PopulateTreeNodesRecursive(root, dataRoot.Children, delegateBound); } return(root); }