protected TreeNode CreateTreeNode(SPListItem item, SPDocumentLibrary doc) { if (item == null) { throw new ArgumentNullException("item"); } if (doc == null) { throw new ArgumentNullException("doc"); } var node = new TreeNode(item.Name, item.UniqueId.ToString()); var spListItem = doc.GetItemByUniqueId(item.UniqueId); if (!string.IsNullOrWhiteSpace(spListItem.Title)) { node.Text = spListItem.Title; } if (item.FileSystemObjectType == SPFileSystemObjectType.Folder) { node.Text = string.Format(BoldTextTemplate, node.Text); node.SelectAction = TreeNodeSelectAction.None; node.ImageUrl = TreeNodeFolderImage; var folderItems = doc.GetItemsInFolder(doc.DefaultView, item.Folder); if (folderItems.Count > 0) { PopulateTree(folderItems, doc, node); } } else if (item.FileSystemObjectType == SPFileSystemObjectType.File && item.File.Name.EndsWith(RdlFileExtension, StringComparison.OrdinalIgnoreCase)) { if (node.Text.EndsWith(RdlFileExtension, StringComparison.OrdinalIgnoreCase)) { node.Text = node.Text.Substring(0, node.Text.Length - FileExtensionLength); } node.ImageUrl = TreeNodeFileImage; try { node.NavigateUrl = GetFileNodeNavigationUrl(item); } catch (Exception ex) { node.Text = GetFileNodeErrorText(item, ex); Trace.TraceError(ex.ToString()); } } return(node); }