Tree View Document Library in MOSS 2007

Hi Moss Devs,
Are you looking for Treeview webpart to display the document library in tree view.
There is no out of the box webpart available to display the document library in Treeview.

I started googling it when started working on this task. I got few webparts which is using java script to load the tree view. I thought of developing own webpart to render the document library in tree view control.

I have created the webpart using .Net 2.0 tree view control and fetching the document library information from the toolpart to render the data to tree view.

Use the following code to load the leaf information of tree view from the document library.

public void TraverseFolder(SPFolder folder,AspControls.TreeNode node)
{
TreeNode tNode = new System.Web.UI.WebControls.TreeNode(folder.Name);
try
{
if (folder.Name != “Forms”)
{
foreach (SPFolder fldr in folder.SubFolders)
{
if (fldr.Name != “Forms”)
{
TreeNode trn = new System.Web.UI.WebControls.TreeNode(fldr.Name);
tNode = TraverseFiles(fldr, trn);
rNode.ChildNodes.Add(tNode);
}
}

foreach (SPFile file in folder.Files)
{
TreeNode trnChild = new System.Web.UI.WebControls.TreeNode(file.Name, “”, “~/_layouts/images/” + file.IconUrl, file.ServerRelativeUrl.ToString(), “”);
//trv.Nodes.Add(trnChild);
rNode.ChildNodes.Add(tNode);
}
}
}

catch (Exception e)
{
Console.WriteLine(e.Message);
}
}

public TreeNode TraverseFiles(SPFolder fldr, AspControls.TreeNode node)
{
try
{
foreach (SPFile file in fldr.Files)
{
AspControls.TreeNode trnChild = new System.Web.UI.WebControls.TreeNode(file.Name, “”, “~/_layouts/images/” + file.IconUrl, file.ServerRelativeUrl.ToString(), “”);
node.ChildNodes.Add(trnChild);
}
bool bRecurseFolders = fldr.SubFolders.Count > 0 ? true : false;

if (bRecurseFolders)
{
for (int i = 0; i < fldr.SubFolders.Count; i++) { TreeNode trnChild = new System.Web.UI.WebControls.TreeNode(fldr.SubFolders[i].Name); node.ChildNodes.Add(TraverseFiles(fldr.SubFolders[i], trnChild)); } } } catch (Exception e) { Console.WriteLine(e.Message); } return node; } Use the Traverse Folder function and pass the root element of the document library as parameter. Now you got a Tree view with appropriate leaf nodes. Render it in your webpart project 🙂

5 comments to Tree View Document Library in MOSS 2007

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>