SharePoint 2010 获取列表中所有数据(包括文件夹内)的方法

SharePoint的列表能存储文件以及文件夹,用户使用的时候,经常会建几个分类文件夹,然后分别存放不同类型的文件,以方便查阅管理。

当文件夹以及文件越来越多的时候,用户就会有搜索特定文档的要求,用户通常都不希望去每个文件夹分别查询,所以我们必须设计一个单独的查询模块去获取列表中包括每个文件夹里的所有数据。

用sharepoint自带的搜索是一种解决方案,也可以利用SharePoint对象模型对整个列表进行查询。

以下介绍2种查询方法。

1. 如果是用SPDateSource查询的话,SPDateSource默认的数据查询范围是Default,即显示列表当前目录下的所有文件以及文件夹,并不包括文件夹里的文件,这个查询范围是个名为SPViewScope的枚举类型,详细解释如下图:

 Member nameDescription
 DefaultShow only the files and subfolders of a specific folder.
 RecursiveShow all files of all folders.
 RecursiveAllShow all files and all subfolders of all folders.
 FilesOnlyShow only the files of a specific folder.

 

所以我们可以将范围值定义成Recursive 或 RecursiveAll 即可。如下:

SPDataSource ds = currentListViewWebPart.DataSource as SPDataSource;
...
ds.Scope = SPViewScope.Recursive;


2. 如果是用SPQuery查询的话,有个ViewAttributes属性可以设置范围,范围的默认值也是Default,枚举值和上面的相同,代码写法如下:

private SPListItemCollection GetItems(SPList list)
        {
            SPQuery query = new SPQuery();
            query.ViewAttributes = "Scope=\"RecursiveAll\"";
            SPListItemCollection itemCollection = list.GetItems(query);
            return itemCollection;
        }


如果想指定单独的文件夹进行查询,SPQuery有个folder属性,指定特定的文件夹名就可以了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值