Quantcast
Viewing all articles
Browse latest Browse all 10096

SharePoint Online TreeView for Outlook Addin

I am currently developing an Outlook Addin, this is my first time doing something Object oriented, I'm a beginner, but since you all must have been there at somepoint i think you can all be relate to me :) and not judge me if the way I ask might come across as stupid.

I have an Outlook Addin, which saves e-mails from Outlook to SharePoint, what i Need is aSharePoint Library Tree View which Shows up once the Save To SharePoint button is pressed.

My Question does anybody here have any experience with this, has anybody done anything similiar, can anybody help me get a headstart through any tipps? I Thank you all in Advance, and am looking Forward to yourGreat Answers.

what i have been able to gather so far is this (but since I'm e beginner i Need some tips as on how to use it):

public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
{
    TreeView treeView;
    TreeNode rootNode;

    public WebPart1()
    {
    }

    protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
    {
        // render the control
        base.RenderContents(writer);
    }

    protected override void CreateChildControls()
    {
        base.CreateChildControls();

        // get the current site
        SPSite currentSite = SPContext.Current.Site;
        using (SPWeb currentWeb = currentSite.OpenWeb())
        {
            // set the tree view properties
            treeView = new System.Web.UI.WebControls.TreeView();
            treeView.ShowLines = true; // show lines
            treeView.ExpandDepth = 0; // expand non

            SPList list = currentWeb.Lists["All Programs"];

            // build the tree
            rootNode = new System.Web.UI.WebControls.TreeNode(list.Title, "", "", list.RootFolder.ServerRelativeUrl.ToString(), "");

            // loop down the tree
            GetFolder(list.RootFolder, rootNode, list);

            // add the root node to tree view
            treeView.Nodes.Add(rootNode);
        }
        this.Controls.Add(treeView);
        base.CreateChildControls();
    }

    public void GetFolder(SPFolder folder, TreeNode rootNode, SPList list)
    {
        // create a new node
        TreeNode newNode = new System.Web.UI.WebControls.TreeNode(folder.Name, "", "~/_layouts/images/itdl.gif", 
                           folder.ServerRelativeUrl.ToString(), "");
        try
        {
            // don't add the forms folder
            if (folder.Name != "Link")
            {
                // loop through all child folders
                foreach (SPFolder childFolder in folder.SubFolders)
                {
                    // don't add the forms folder
                    if (childFolder.Name != "Link")
                    {
                        TreeNode trn = 
                          new System.Web.UI.WebControls.TreeNode(childFolder.Name, "", "", childFolder.ServerRelativeUrl.ToString(), "");
                        newNode = GetItems(childFolder, trn);

                        // add the new node to the tree
                        rootNode.ChildNodes.Add(newNode);
                    }
                }
            }
        }
        catch { }
    }

    public TreeNode GetItems(SPFolder folder, TreeNode node)
    {
        //Get Items from childFolder
        SPQuery qry = new SPQuery();
        qry.Folder = folder;
        SPWeb web = null;

        web = folder.ParentWeb;
        SPListItemCollection ic = web.Lists[folder.ParentListId].GetItems(qry);

        foreach (SPListItem subitem in ic)
        {
            if (subitem.Folder != null) //Is Subfolder
            {
                // create a new node for a subfolder and add items to it
                TreeNode childNode = 
                  new System.Web.UI.WebControls.TreeNode(subitem.Folder.Name);
                node.ChildNodes.Add(GetItems(subitem.Folder, childNode));
            }  

            if (subitem.Folder == null)
            {
                TreeNode trn1 = new System.Web.UI.WebControls.TreeNode(
                                      subitem["Title0"].ToString());
                node.ChildNodes.Add(trn1);
            }
        }
        return node;
    }
}


Viewing all articles
Browse latest Browse all 10096

Trending Articles