【问题标题】:How to loop through all webs and sub webs of a SharePoint Web如何循环访问 SharePoint Web 的所有网站和子网站
【发布时间】:2016-07-17 04:40:44
【问题描述】:

我正在尝试遍历网络下的所有网络和这些网络的子网络。

我的家长网站

http://EXAMPLE.com/parentweb(这是一个子站点,不是根网站)

子网站 http://example.com/parentweb/subweb(这是子网站之一,可能有也可能没有子网站)

我唯一尝试的是转到网站集并循环浏览所有网站,这是一个更长的过程,因为我知道唯一需要检查的子网站。我的网站集有多个子网站。我不想遍历所有子站点。

此代码有效,但需要花费大量时间,并且会遍历所有不需要检查的子站点

     using(SPSite site = new SPSite(“http://myserver/mysitecol”) 
           { 
               foreach(SPWeb web in site.AllWebs) 
               {
               }
           } 

【问题讨论】:

    标签: c# asp.net sharepoint sharepoint-2010 sharepoint-2013


    【解决方案1】:

    您可以使用SPWeb 对象的.Webs 属性来访问其直接 子站点。

    using(SPSite site = new SPSite("http://myserver/mysitecol") 
    { 
        using(SPWeb parentweb = site.OpenWeb("subweb/subweb") 
        {
            foreach(SPWeb web in parentweb.Webs)
            {
    
            }
        }
    } 
    

    要访问 Web 下的所有(包括间接)后代子站点,您可以在每个直接后代上递归地访问 .Webs 属性,但从 @987654325 开始会更直接SPSite 网站集对象的 @ 属性。

    .AllWebs 返回的 SPWebCollection 的 .WebsInfo 属性为您提供轻量级 SPWebInfo 对象的 List<>。您可以使用这个轻量级集合来获取您关心的 Web 的过滤列表,而无需实例化和处置集合中的任何其他 SPWeb。

    string webUrl = "/mysitecol/subweb/subweb";
    using(SPSite site = new SPSite("http://myserver/mysitecol") 
    { 
        List<SPWebInfo> websInfo = site.AllWebs.WebsInfo.FindAll(
            delegate(WebsInfo webInfo)
            {
                // filter to get us only the webs that start with our desired URL
                return webInfo.ServerRelativeUrl.StartsWith(webUrl);
            }
        );
        foreach(SPWebInfo webInfo in websInfo)
        {
             using(SPWeb web = site.OpenWeb(webInfo.Id))
             {
    
             }
        }
    }
    

    【讨论】:

    • 它只会给出直接网络而不是直接子网络的子网络
    • 明白了。好吧,您可以在循环时递归访问每个子网站的.Webs 属性,但我怀疑在SPSite 对象上使用AllWebs.WebsInfo 属性会更快。我会更新我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多