首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚现场CrossListQueryInfo

亚现场CrossListQueryInfo
EN

Stack Overflow用户
提问于 2013-01-04 15:33:49
回答 1查看 1.5K关注 0票数 1

情况是:

我有子站点(SPWeb) htp://servername/subsitename/

我需要使用CrossListQueryInfo在所有列表中查找项目,但就在这个子站点(SPWeb)中,我需要:

代码语言:javascript
复制
 var query = new CrossListQueryInfo
                            {
                                Lists = "<Lists ServerTemplate=\"100\" />",
                                ViewFields =  "...",
                                Webs = "<Webs Scope=\"Recursive\" />",
                                WebUrl = web.ServerRelativeUrl,
                                UseCache = true,
                                Query =  "..."
                            };
var cache = new CrossListQueryCache(query);
var dataTable = cache.GetSiteData(web.Site, CrossListQueryCache.ContextUrl()))

但是这个搜索在整个的地点收集,什么是严格的方式使用它?我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-05-08 15:12:09

为了仅检索特定站点的项,请指定属性空值。

根据MSDN:

Webs属性指定要包含在查询中的网站。默认情况下,查询只考虑从其中调用GetSiteData方法的网站。 您可以通过将Webs属性设置为包含Web标记和作用域属性的字符串来扩展查询的范围。范围属性的可能值包括递归和SiteCollection。 当范围属性设置为递归时,查询将考虑当前网站和当前网站的所有子站点。 当范围属性设置为SiteCollection时,查询将考虑与当前网站位于同一网站集合中的所有网站。在这两个属性值中,这是更具包容性的。

因此,更新后的代码:

代码语言:javascript
复制
var query = new CrossListQueryInfo
                            {
                                Lists = "<Lists ServerTemplate=\"100\" />",
                                ViewFields =  "...",
                                Webs = string.Empty,  // considers only the Web site from which the GetSiteData method was invoked
                                WebUrl = web.ServerRelativeUrl,
                                UseCache = true,
                                Query =  "..."
                            };
var cache = new CrossListQueryCache(query);
var dataTable = cache.GetSiteData(web.Site, CrossListQueryCache.ContextUrl()))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14160078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档