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

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

分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报

文档sharepointurl测试stringforms

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

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

时间: 2024-11-29 01:02:01

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

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加.删除.修改文档) 分类: SharePoint2012-01-18 18:02 1189人阅读 评论(0) 收藏 举报 文档propertiesstringurl测试web 1.测试文档库(Doclib1.Doclib2): 增加一栏“测试栏1”. 2.新建“可视化web部件项目”,添加“解决方案资源管理器”里边选中项目右键“添加”-“新建项”-"事件接收器“ 如图操作,选择”列表项事件“和”文档库“集相应处理事件 实现

Aspose.Pdf for .NET控件PDF文档到Excel、EPS、SVG等的转换

Aspose.Pdffor .NET v8.6.0于昨日发布,该版本包含一个相当令人期待和兴奋的功能——就是让你能转换PDF文件为MS Excel工作簿.使用这个新的更新,开发人员就可以转换PDF文件为XLS格式,PDF文件中每个页面都以一个单独的工作表呈现.以下代码片段展示了如何使用这项功能: 1 2 3 4 5 6 // Load PDF document Aspose.Pdf.Document doc = newAspose.Pdf.Document(@"C:input.pdf"

【万里征程——Windows App开发】控件大集合【修补中】

使用诸如 Blend for Visual Studio 或 Microsoft Visual Studio XAML 设计器的设计工具. 在 Visual Studio XAML 编辑器中将控件添加到 XAML 标记中. 在代码中添加控件. 当应用运行时会看到你在代码中添加的控件,但在 Visual Studio XAML 设计器中看不到. 前面我们已经用过了Grid.Button等控件,现在就来系统地看看关于控件的一些属性.事件等等. 毫无疑问第一步就是要来添加控件,那么添加控件有哪几种方式

OS开发UI基础—手写控件,frame,center和bounds属性

OS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:sel

WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件进行控制,但对于WinForm则没有这样方便.申明一下,我在这儿所说的改变当前节点的字体与颜色,主要是在WinForm中的TreeView控件,当前选中节点后,其失去鼠标焦点后节点的字体与颜色失去了选中状态,层级一多,我们就不知道当前

[00004]-[2015-07-16]-[00]-[VC++ 开发Activity控件基础]

Visual C++是开发ActiveX控件的强大工具,它的特点是开发周期短.便于使用,因此它已经成为开发ActiveX控件的主要工具之一.Visual C++集成开发环境,使用了微软自己的类库MFC,MFC对开发ActiveX控件提供了全面的支持,本文讲述的过程均在Visual C++ 6.0(以下简称VC)中实现. 1. 创建工程: 对于使用过VC的人,可以很容易地创建一个开发ActiveX控件的工程,没有使用过VC的人,按 照下面的操作步骤,也可以很快创建一个同样的工程出来. 第一步:“F

iOS开发基础----OC/UI控件

1. 前缀-> 只是代码组合之后,用来区分谁写的代码 2. 工具包frameworks 总共4个工具包,前3个是经常用的,最后一个是测试用的. 3. iphone 6 的SDK 是建立在 ios 8.0以上的 4.ios的界面虽然发生了改变,但还是从main.m中执行的,只是main.m没有放在导航区,而是放在Supporting Files 分组中.注意不是文件夹,是分组. main.m里有这个 return UIApplicationMain(argc, argv, nil, NSStrin

一些基于jQuery开发的控件

基于jQuery开发,非常简单的水平方向折叠控件.主页:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html (无法找到)下载:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html 示例:http://letmehaveblog.blogspot.com/2007

WPF 将数据源绑定到TreeView控件出现界面卡死的情况

首先来谈一下实现将自定义的类TreeMode绑定到TreeView控件上的一个基本的思路,由于每一个节点都要包含很多自定义的一些属性信息,因此我们需要将该类TreeMode进行封装,TreeView的每一个节点的类型都是TreeMode,我们还定义一些Children属性,Parent属性用于定义当前节点的子节点和父节点,当然还定义了一些常见的Name.ToolTip.ID.IsExpand.IsChecked(主要是在每一个节点前面添加了一个CheckBox)等属性,另外的一些属性就是具体需要