1,最近的项目中遇到一个需求,站点中有几十个列表,其中每5,6个列表属于一个模块下的。客户的需求是,首页上显示一个模块下所有列表数据的前5条,并按创建时间排序。

2,刚刚考虑到这块的实现方法时,用的是DataTable存储每个列表的前五条,然后DataTable在排序,取前五条,这样做的缺点显而易见,需要多次访问列表,然后取出的数据创建时间排序还不一定是正确的。后来发现SharePoint可以跨列表查询,解决这个问题真是太方便了。

3,

static void Main(string[] args){SPSecurity.RunWithElevatedPrivileges(delegate(){using (SPSite site = new SPSite("http://sp2013/sites/DYZX")){using (SPWeb web = site.OpenWeb()){//声明Query对象SPSiteDataQuery query = new SPSiteDataQuery();query.Query = "<OrderBy><FieldRef Name=\"Created\" Ascending=\"False\" /></OrderBy>";query.RowLimit = 5;query.Webs = "<Webs Scope='SiteCollection' />";query.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='Created' /><ProjectProperty Name='Title' /><ListProperty Name='Title' />";query.Lists = "<Lists>" +"<List ID=\"3f3f85f0-b4a2-4ef3-9e59-56d3ee9f79ed\" />" +"<List ID=\"498e313f-f54f-4919-9651-54e78c59f3c5\" />" +"</Lists>";DataTable dt = web.GetSiteData(query);foreach (DataRow dr in dt.Rows){foreach (DataColumn dc in dt.Columns){Console.WriteLine(dc.ColumnName+":"+dr[dc.ColumnName].ToString());}}}}});}

4,query.webs:

此元素的属性只有一个:Scope。能赋予它的值有3个吧,尽管MSDN上说只有2个…..

"<Webs Scope='SiteCollection' />",包含当前网站所在的网站集(Site)下所有网站(Web)以及子网站(Web)

"<Webs Scope='Recursive' />",包含当前网站(Web)以及其下的所有子网站(Web)

默认,仅仅包含当前网站(Web)

5,query.Lists = "<Lists ServerTemplate=\"107\" />";
     query.Lists = "<Lists BaseType=\"0\" />";
     query.Lists = "<Lists Hidden = \"true\" />";

此元素将定义你在文档库(Document Libraries)或者列表(Lists)里的搜索范围。 属性有4个:BaseType、ServerTemplate、Hidden、MaxListLimit 此外,子元素有两个:List、WithIndex。使用子元素可以将搜索条件限制在比较小的范围之内。 下面是关于属性的介绍。

(1) BaseType (例:"<Lists BaseType='1'/>")

必须要注意的是这个属性的默认值为"<Lists BaseType='0'/>",也就是说缺省或者该属性设置出错时会查询文档库以外的所有列表。

(2)ServerTemplate (例: "<Lists ServerTemplate='850'/>")搜索指定类型的列表(850为页面库列表类型)。这个属性的值出错时会以默认值进行查询。

(3) Hidden (例:"<Lists ServerTemplate='850' Hidden='TRUE'/>") 设定能否搜索隐藏列表。默认是搜索所有非隐藏的列表。

(4) MaxListLimit(例:"<Lists BaseType='1' MaxListsLimit='500'/>") 定义搜索的列表的总数,当超过这个数字时,SPSiteDataQuery会抛出一个SPException的例外。这个属性的默认值为1000。当把此属性设置为0时,那么搜索的列表数目将不会受到限制。

(5)子元素List(例:上面的代码即时使用的子元素List),定义搜索列表的Guid,只在指定的列表中搜索。

参考博文:http://www.cnblogs.com/jinho/archive/2011/03/15/1985448.html

转载于:https://www.cnblogs.com/wanren/p/4525947.html

SharePoint中跨列表查询相关推荐

  1. sharepoint 列表查询范围

    使用sharepoint的CAML查询,有的时候需要设置范围,这时候只需要设置SPQuery的ViewAttributes属性即可 下面是SPQuery.ViewAttributes的值: query ...

  2. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我...

    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...

  3. mysql跨库查询 索引_MySQL中跨库查询怎么搞?

    导读 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询. 在MySQL中跨库查询主要分为两种情况,一种 ...

  4. JavaWeb-综合案例(用户信息)-学习笔记01【列表查询】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  5. 列表查询,添加功能---JSP,servlet

    1.列表查询以及添加功能的需求 列表查询功能: *用户可以通过点击一个超链接或者按钮,经过UserListServlet 类处理后,跳转到查询后的界面list.jsp *使用Druid数据库连接池技术 ...

  6. SharePoint 2013 列表启用搜索

    SharePoint 2013列表搜索的设置,只是进行完全爬网,就可以使用.如果开启爬网不是很熟练可以参考我附后的博客. 1.新建测试列表,新建项目,如下图: 2.附件内容,如下图: 3.另一个附件内 ...

  7. 分享一个列表查询查看多选基础资料的解决方案

    目前K/3 CLoud中对于多选基础资料暂不提供列表查询和显示功能.因此二次开发可以考虑自己来实现,这里给大家一个参考示例,抛砖引玉,希望对大家有所帮助. 1.首先对于需要列表查询多选基础资料的单据, ...

  8. Java实践(五)仿照用户列表查询写查自己的库

    一.实践目的 仿照用户列表查询,练习写个查库程序,类似于下图功能 二.实验步骤 1.创建库.表,编一个数据 2.创建javaee工程添加tomcat,修改端口及虚拟目录 3.导入jar包 4.复制we ...

  9. java 黑马头条 day4 自媒体文章发布 自媒体文章列表查询 频道列表展示 自媒体文章-发布、修改、保存草稿 自媒体文章-根据id查询 自媒体文章-删除

    1 自媒体文章列表查询 1.1 需求分析 1.2 表结构和实体类 wm_news 自媒体文章表 需求: 如果有文章标题,按照文章标题模糊查询 如果有频道信息,按照频道ID查询 如果有文章状态,按照状态 ...

最新文章

  1. 大数据技术在传统企业信息化的应用
  2. Unix时间戳转换(python)
  3. CVPR2020 | 遮挡也能识别?地平线提出用时序信息提升行人检测准确度
  4. 面试官:Spring事务失效的场景有哪些?如何解决?
  5. 微信开源推理加速工具 TurboTransformers,性能超越 PyTorch/TensorFlow 与主流优化引擎
  6. pythonturtle绘图代码 四叶草_python绘图四叶草
  7. 接口测试--测试工具apipost脚本大全
  8. percona mysql 编译参数_Linux 下编译安装 MySQL(Percona Server) 5.6
  9. 关于jxls2.6.0的学习以及遇到的问题(八)
  10. 商家后台服务操作失败!服务上架失败【已上架过此类型插件】
  11. LSA和 PLSA学习笔记
  12. 【有利可图网】PS教程:制作立体双色复古文字
  13. 用“掩码位图“,制作类似.png的“透明图片“①
  14. 1100 1149C语言答案,C语言程序设计(何钦铭)课后习题作业
  15. 零基础,没方向,如何快速有效学习编程语言?
  16. 滑动窗口与双指针的区别
  17. mysql测试题蔡铜_MySQL:测试题
  18. 公众号运营引流月吸万粉之互推
  19. 2020年4月5日总结
  20. C#生成年月日三级目录

热门文章

  1. Sony Xperia Z3+ E6553 开启 VoLTE
  2. ArcGIS教程:评估城市环境中的蒸汽管爆炸
  3. 开启windowsPC无线热点功能
  4. QCustomPlot学习(1)
  5. 正则也很牛,把阿拉伯数字的金额转换为中文大写数字
  6. CESS:波卡生态去中心化数据存储的未来
  7. node+express+mysql开发后台接口
  8. 计算机培训报名费一般都是多少钱
  9. 两个一阶节的级联型_数字信号处理-第五章数字滤波器的基本结构(new).ppt
  10. 单片机数码管从00到99C语言_用51单片机控制 2位数码管动态显示 00 ~ 99。