可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)
1、在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试
2、在VS2010中新建空白sharepoint项目
3、创建可视化web部件
在TreeViewTestUserControl.ascx中添加TreeView控件,ID为“TreeView1”
在TreeViewTestUserControl.ascx.cs源文件夹添加如下实现代码
全部代码:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//加入引用
using Microsoft.SharePoint;
namespace TreeViewProject.TreeViewTest
{
public partial class TreeViewTestUserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDoclib();
}
}
/// <summary>
/// 绑定文档库
/// </summary>
private void BindDoclib()
{
string url = SPContext.Current.Web.Url;
#region
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(url))
{
using (SPWeb web = site.OpenWeb())
{
foreach (SPList list in web.Lists)
{
if (list.BaseTemplate != SPListTemplateType.DocumentLibrary)//找到文档库
{
continue;
}
else
{
if (list.Title == "测试文档库")
{
TreeNode node = new TreeNode();
node.Text = list.Title;
node.NavigateUrl = list.DefaultViewUrl;
TreeView1.Nodes.Add(node);
ChildDocFolder(list.RootFolder, node);
}
}
}
}
}
});
#endregion
}
/// <summary>
/// 递归方法读取文档库
/// </summary>
/// <param name="folder">父文件夹</param>
/// <param name="currentNode">当前节点</param>
private void ChildDocFolder(SPFolder folder, TreeNode currentNode)
{
string url = SPContext.Current.Web.Url;
if (folder.SubFolders.Count == 0)// //如果不存在子文件夹就返回,并把文件夹中的文件加到TreeView中
{
foreach (SPFile file in folder.Files)//显示子文件
{
TreeNode node = new TreeNode();
node.Text = file.Name;
node.NavigateUrl = url + "/" + file.Url;
node.ImageUrl = "_layouts/images/" + file.IconUrl;
currentNode.ChildNodes.Add(node);
}
return;
}
else
{
foreach (SPFile file in folder.Files)//添加当前文件夹中的文件到TreeView中
{
TreeNode node = new TreeNode();
node.Text = file.Name;
node.NavigateUrl = url + "/" + file.Url;
node.ImageUrl = "_layouts/images/" + file.IconUrl;
currentNode.ChildNodes.Add(node);
}
foreach (SPFolder spfolder in folder.SubFolders)
{
if (spfolder.Name == "Forms")//去掉默认的系统文件夹
{
continue;
}
TreeNode node = new TreeNode();
node.Text = spfolder.Name;
node.NavigateUrl = url + "/" + spfolder.Url;
node.ImageUrl ="_layouts/images/folder.gif";
currentNode.ChildNodes.Add(node); //添加当前文件夹到TreeView中
ChildDocFolder(spfolder, node); //展示当前文件夹下面的文件和文件夹
}
}
}
}
}
代码完成,点击测试部署webpart到sharepoint网站中,在页面插入webpart,测试效果如下
分享到:
相关推荐
里面告诉用户怎么使用webpart控件.
包含用户控件的最简单的webpart VS2005开发的moss2007中使用的webpart,在moss网站中使用是成功的。
SharePoint WebPart 用户控件包装器
用于sharepoint webpart 的开发,用此软件之后直接开发usercontrol即可。和国内的quickpart 差不多
动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和...
实例 制作旗帜广告条 实例 制作随机广告条 ...实例 在WebPart中加入用户控件 实例 在WebPart中加入简单WebPart 实例 WebPart之间的连接 6.6 其他 实例 用Panel控件显示或隐藏一组控件 实例 通过ListBox实现点菜功能
SharePoint WebPart开发教程实例
本文描述了针对Microsoft Office SharePoint Server 2007的WebPart的开发环境的搭建。开发环境使用的操作系统为Windows 2003 SP1以上,并安装了Windows SharePoint Service 3.0。
有关SharePoint WebPart的一些文档笔记有关SharePoint WebPart的一些文档笔记有关SharePoint WebPart的一些文档笔记
写的很详细 很简单 主要是讲web part的一些基础知道以及自定义开发, 并且有例子
ASP.NET MVC框架下的Webpart Portlet插件开发
webpart开发及于silverlight整合
MultiView范例 第12章 Wizard范例 第13章 导航控件与ImageMap控件 第14章 WebPart设计范例——使用UserControl 第15章 高级范例——电子商城 第16章 高级范例——会员与订单处理机制 第17章 高级...
WebPart模板文件是VS2005的插件程序,可在vs2005的新建C#项目中添加WebPart模板
5.2.3 使用Server对象中Execute()和Transfer()方法重定向页面 5.2.4 Global.asax文件 5.3 状态管理 5.3.1 Application对象 5.3.2 Session对象 5.3.3 Cookie对象 5.3.4 ViewState对象 5.4 配置ASP.NET...
webpart教程 好东西 初学webpart的好帮手
开发需要的工具: 1、 安装QuickPart,安装过程参见视频说明 2、 安装Microsoft Visual Studio 2005 3、 安装Microsoft Visual Studio 2005 - Update to Support Web Application Projects(VS80-KB915364-X86-ENU....
vs.2003webpart开发 SPS
asdfasdf asdfasdfasdfasdfasfasfasdf