转: http://blog.csdn.net/wangwenism/article/details/8751411

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

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

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

以下介绍2种查询方法。

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

  Member name Description
  Default Show only the files and subfolders of a specific folder.
  Recursive Show all files of all folders.
  RecursiveAll Show all files and all subfolders of all folders.
  FilesOnly Show only the files of a specific folder.

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

  1. SPDataSource ds = currentListViewWebPart.DataSource as SPDataSource;
  2. ...
  3. ds.Scope = SPViewScope.Recursive;
SPDataSource ds = currentListViewWebPart.DataSource as SPDataSource;
...
ds.Scope = SPViewScope.Recursive;

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

  1. private SPListItemCollection GetItems(SPList list)
  2. {
  3. SPQuery query = new SPQuery();
  4. query.ViewAttributes = "Scope=\"RecursiveAll\"";
  5. SPListItemCollection itemCollection = list.GetItems(query);
  6. return itemCollection;
  7. }
private SPListItemCollection GetItems(SPList list)
{
SPQuery query = new SPQuery();
query.ViewAttributes = "Scope=\"RecursiveAll\"";
SPListItemCollection itemCollection = list.GetItems(query);
return itemCollection;
}

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

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

  1. JAVA中比较两个文件夹不同的方法

    JAVA中比较两个文件夹不同的方法,可以通过两步来完成,首先遍历获取到文件夹下的所有文件夹和文件,再通过文件路径和文件的MD5值来判断文件的异同.具体例子如下: public class TestFo ...

  2. SharePoint 2010 获取列表全部定义方法

    http://spf06/_vti_bin/owssvr.dll?Cmd=ExportList&List=%7B220128F0-6084-45B3-9942-C29B3AF6663C%7D ...

  3. 3.Hive中查看数据来源文件和具体位置方法

    虚拟列 -- 当 hive 产生了非预期的或 null 的时候,可以通过虚拟列进行诊断,判断哪行数据出现问题 INPUT__FILE__NAME     (输入文件名)map任务读入File的全路径 ...

  4. 【c#】 使用Directory.GetFiles获取局域网中任意电脑指定文件夹下的文件

    本文为老魏原创,如需转载请留言 格式如下: // 获取IP地址为10.172.10.167下D盘下railway下的所有文件 string[] picArray = Directory.GetFile ...

  5. 【Python + Selenium断言】之如何获取定位Web页面列表中的数据

    如下图所示: 当定位元素时,我想获取指定的某一列的某一行的断言,如图我只想获取jiancha1的值,有同学会说:直接定位不就好了.但是我们知道,列表的数据会时刻变动的,不能靠定死的路径,那该怎么办呢? ...

  6. SharePoint 2010 新列表模板列表

    SharePoint 2010 新列表模板列表 项目描述叙事 发展环境创造了良好的名单为模板.然后使用列表模板将其复制到生产环境. 脚步 1. 打开"列表设置",找到"将 ...

  7. 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库

    最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...

  8. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

  9. 基于BootStrap的initupload()实现Excel上传和获取excel中的数据

    简单说明:后边要做exl解析(还没做呢),所以先有一个excel的的上传以及获取excel中的数据,展示出来. 代码: //html代码 <div class="btn-group&q ...

随机推荐

  1. Java中“||”与“|”的区别

    两者都是或,但是不一样.举个例实例给你看你就明白了: int i=0;if(3>2 || (i++)>1) i=i+1;System.out.println(i); 这段程序会打印出1,而 ...

  2. HttpWebRequest

    同步请求=====================================================================================  byte[] da ...

  3. Python读写文件 - 转

    http://blog.csdn.net/adupt/article/details/4435615 http://docs.python.org/release/2.5.2/lib/bltin-fi ...

  4. ASP + ACCESS保存图片文件之实现

    con.execute "CREATE tblImg (lngId COUNTER PRIMARY KEY, binImg IMAGE)" set ads=createobject ...

  5. Linux下去掉^M的方法

    cat -A filename 就可以看到windows下的断元字符 ^M 要去除他,最简单用下面的命令: dos2unix filename     第二种方法:   sed -i 's/^M//g ...

  6. 基于Oracle OCI的数据访问C语言接口ORADBI .

    基于Oracle OCI的数据访问C语言接口ORADBI cheungmine@gmail.com Mar. 22, 2008   ORADBI是我在Oracle OCI(Oracle 调用接口)基础 ...

  7. CF135A Replacement

    http://codeforces.com/problemset/problem/135/A 题意 : 我能说我卡在这个题的题意上很久吗.....这个题就是在数组里找一个数,然后找另一个数把他替换掉, ...

  8. struts2+jquery+ajax实现上传&&校验实例

    一直以为ajax不能做上传,直到最近看了一些文章.需要引入AjaxFileUploaderV2.1.zip,下载链接:http://pan.baidu.com/s/1i3L7I2T 代码和相关配置如下 ...

  9. undefined与null的区别---js

    不错... http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html

  10. Ruby Gem命令

    Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找.安装.升级和卸载软件包,非常的便捷. Ruby 1.9.2版本默认已安装Ru ...