using (ClientContext context = new ClientContext(System.Configuration.ConfigurationManager.AppSettings["SiteUrl"]))
{
NetworkCredential credentials = new NetworkCredential(Admin, AdminPWD, AdminDomain);
context.Credentials = credentials;
List list = context.Web.Lists.GetByTitle(System.Configuration.ConfigurationManager.AppSettings["DocumentLibrary"]);
context.Load(list);
context.ExecuteQuery();
context.Load(list.RootFolder);
context.Load(list.RootFolder.Folders);
context.ExecuteQuery();
testnode = new System.Web.UI.WebControls.TreeNode();
foreach (Folder SubFolder in list.RootFolder.Folders)
{
if (SubFolder.Name != "Forms")
{
System.Web.UI.WebControls.TreeNode MainNode = new System.Web.UI.WebControls.TreeNode(SubFolder.Name);
GetFolderNode(MainNode, SubFolder, context);
// testnode.ChildNodes.Add(FillTreeViewNodes(SubFolder, MainNode, context));
}
}
}
public List<FolderInfo> GetFoldersInFolder(Folder SubFolder, ClientContext clientcontext)
{
List<FolderInfo> result = new List<FolderInfo>();
FolderInfo folderinfo;
clientcontext.Load(SubFolder.Folders);
clientcontext.ExecuteQuery();
foreach (Folder Fol in SubFolder.Folders)
{
folderinfo = new FolderInfo();
folderinfo.foldername = Fol.Name;
if (folderinfo.foldername != "Forms")
{
folderinfo.folderurl = Fol.ServerRelativeUrl;
result.Add(folderinfo);
}
}
return result;
}
public System.Web.UI.WebControls.TreeNode GetFolderNode(System.Web.UI.WebControls.TreeNode node, Folder folder, ClientContext clientcontext)
{
List<FolderInfo> folders = GetFoldersInFolder(folder, clientcontext);
clientcontext.Load(folder.Folders);
clientcontext.ExecuteQuery();
System.Web.UI.WebControls.TreeNode folderNode;
for (int documentcount = 0; documentcount <= folders.Count - 1; documentcount++)
{
folderNode = new System.Web.UI.WebControls.TreeNode(folders[documentcount].foldername);
Folder testfolder = folder.Folders[documentcount];
node.ChildNodes.Add(folderNode);
folderNode.ChildNodes.Add(GetFolderNode(folderNode, testfolder, clientcontext));
}
return node;
}
issue is with the Get folder node it will retrive all folder nodes once it come to returen node again the control wil go to