我需要一种简单的方法来获取最新的5个创建的网站。
我知道每个网站都有一个创建日期属性。
我想在没有预告的情况下这样做,因为可以有1000个子站点。
有什么想法吗?
using (SPSite clientSiteCollection = new SPSite(currentUrl))
{
foreach (SPWeb web in clientSiteCollection.AllWebs.Select(c => c.Properties["WebTemplate"] == "xx").OrderByDescending(d => d.Created).Take(5))
{
答案 0 :(得分:1)
你可以使用Linq。这将是类似的事情。
var newestSites = clientSiteCollection.AllWebs.OrderByDescending(p=>p.CreatedDate).ToList().Take(5);
// Now NewestSites is a collection of your top 5 newest created Sites.
答案 1 :(得分:0)
我建议您针对SharePoint搜索构建KeywordQuery,您可以在其中指定只需要“SPWeb”作为搜索结果,并将托管属性“已创建”作为查询中的条件传递。像这样:
myQuery.QueryText = "contentclass:STS_web Created>6/1/2013"
构建KeywordQuery:http://dotnetmafia.com/blogs/dotnettipoftheday/archive/2013/01/03/how-to-use-the-sharepoint-2013-search-keywordquery-class.aspx
此外,您只需要5个结果即可配置KeywordQuery:
myQuery.RowLimit = 5;
并且您希望它们按“降序”中的“已创建”排序:
myQuery.SortList.Add("Created", SortDirection.Descending);