• 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)


     

    可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

    分类: SharePoint
     

    可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

    1、在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试

    2、在VS2010中新建空白sharepoint项目

    3、创建可视化web部件

    在TreeViewTestUserControl.ascx中添加TreeView控件,ID为“TreeView1”

    在TreeViewTestUserControl.ascx.cs源文件夹添加如下实现代码

    全部代码:

    [csharp] view plaincopy
     
    1. using System;  
    2. using System.Web.UI;  
    3. using System.Web.UI.WebControls;  
    4. using System.Web.UI.WebControls.WebParts;  
    5.   
    6. //加入引用  
    7. using Microsoft.SharePoint;  
    8.   
    9.   
    10. namespace TreeViewProject.TreeViewTest  
    11. {  
    12.     public partial class TreeViewTestUserControl : UserControl  
    13.     {  
    14.         protected void Page_Load(object sender, EventArgs e)  
    15.         {  
    16.             if (!IsPostBack)  
    17.             {  
    18.                 BindDoclib();  
    19.             }  
    20.         }  
    21.   
    22.         /// <summary>  
    23.         /// 绑定文档库  
    24.         /// </summary>  
    25.         private void BindDoclib()  
    26.         {  
    27.             string url = SPContext.Current.Web.Url;  
    28.             #region  
    29.             SPSecurity.RunWithElevatedPrivileges(delegate()  
    30.             {  
    31.                 using (SPSite site = new SPSite(url))  
    32.                 {  
    33.                     using (SPWeb web = site.OpenWeb())  
    34.                     {  
    35.                         foreach (SPList list in web.Lists)  
    36.                         {  
    37.                             if (list.BaseTemplate != SPListTemplateType.DocumentLibrary)//找到文档库   
    38.                             {  
    39.                                 continue;  
    40.                             }  
    41.                             else  
    42.                             {  
    43.                                 if (list.Title == "测试文档库")  
    44.                                 {  
    45.                                     TreeNode node = new TreeNode();  
    46.                                     node.Text = list.Title;  
    47.                                     node.NavigateUrl = list.DefaultViewUrl;  
    48.                                     TreeView1.Nodes.Add(node);  
    49.                                     ChildDocFolder(list.RootFolder, node);  
    50.                                 }  
    51.                             }  
    52.                         }  
    53.                     }  
    54.                 }  
    55.   
    56.             });  
    57.             #endregion  
    58.         }  
    59.   
    60.         /// <summary>  
    61.         /// 递归方法读取文档库  
    62.         /// </summary>  
    63.         /// <param name="folder">父文件夹</param>  
    64.         /// <param name="currentNode">当前节点</param>  
    65.         private void ChildDocFolder(SPFolder folder, TreeNode currentNode)  
    66.         {  
    67.             string url = SPContext.Current.Web.Url;  
    68.             if (folder.SubFolders.Count == 0)// //如果不存在子文件夹就返回,并把文件夹中的文件加到TreeView中   
    69.             {  
    70.                 foreach (SPFile file in folder.Files)//显示子文件  
    71.                 {  
    72.                     TreeNode node = new TreeNode();  
    73.                     node.Text = file.Name;  
    74.                     node.NavigateUrl = url + "/" + file.Url;  
    75.                     node.ImageUrl = "_layouts/images/" + file.IconUrl;  
    76.                     currentNode.ChildNodes.Add(node);  
    77.                 }  
    78.                 return;  
    79.             }  
    80.             else  
    81.             {  
    82.                 foreach (SPFile file in folder.Files)//添加当前文件夹中的文件到TreeView中   
    83.                 {  
    84.                     TreeNode node = new TreeNode();  
    85.                     node.Text = file.Name;  
    86.                     node.NavigateUrl = url + "/" + file.Url;  
    87.                     node.ImageUrl = "_layouts/images/" + file.IconUrl;  
    88.                     currentNode.ChildNodes.Add(node);  
    89.                 }  
    90.                 foreach (SPFolder spfolder in folder.SubFolders)  
    91.                 {  
    92.                     if (spfolder.Name == "Forms")//去掉默认的系统文件夹   
    93.                     {  
    94.                         continue;  
    95.                     }  
    96.                     TreeNode node = new TreeNode();  
    97.                     node.Text = spfolder.Name;  
    98.                     node.NavigateUrl = url + "/" + spfolder.Url;  
    99.                     node.ImageUrl ="_layouts/images/folder.gif";  
    100.                     currentNode.ChildNodes.Add(node); //添加当前文件夹到TreeView中   
    101.                     ChildDocFolder(spfolder, node);  //展示当前文件夹下面的文件和文件夹  
    102.                 }  
    103.             }  
    104.         }   
    105.     }  
    106. }  

    代码完成,点击测试部署webpart到sharepoint网站中,在页面插入webpart,测试效果如下

  • 相关阅读:
    java相关知识集锦
    adb相关基础知识集锦
    我所理解的OOP——UML六种关系
    据说每个大牛、小牛都应该有自己的库——DOM处理续
    据说每个大牛、小牛都应该有自己的库——DOM处理
    JavaScript 继承
    据说每个大牛、小牛都应该有自己的库——Event处理
    据说每个大牛、小牛都应该有自己的库——框架篇
    可拖动的DIV续
    CSS hack前传——背景图片全屏
  • 原文地址:https://www.cnblogs.com/ningang/p/4322058.html
Copyright © 2020-2023  润新知