SharePoint2010 SharePoint Fundation 服务器端对象模型之 枚举网站和网站集
基本对象模型任务:http://msdn.microsoft.com/zh-cn/library/ms412748
下面的示例枚举当前网站集中所有网站和列表的标题
代码如下:
SPSite oSiteCollection = SPContext.Current.Site; //获取当前site对象 SPWebCollection collWebsite = oSiteCollection.AllWebs; //获取站点下的所有 web for (int i = 0; i < collWebsite.Count; i++) { using (SPWeb oWebsite = collWebsite[i]) { SPListCollection collList = oWebsite.Lists; for (int j = 0; j < collList.Count; j++) { Label1.Text += SPEncode.HtmlEncode(collWebsite[i].Title) + " " + SPEncode.HtmlEncode(collList[j].Title) + "<BR>"; } } }
效果如下:
下面例子,返回某个网站下的所有首层子网站的列表:
代码:
SPSite oSiteCollection = SPContext.Current.Site; SPWeb web = new SPSite(oSiteCollection.Url).OpenWeb(); //获取本网站集的根网站 SPWebCollection collWebsite = web.Webs; //获取根网站下的所有首层网站 foreach (SPWeb item in collWebsite) { Label1.Text += SPEncode.HtmlEncode(item.Title) + "<br>"; item.Close(); //请求完毕后关闭site,释放资源 }
下面找出根网站集下首层子网站的url以及下面的列表名字
代码如下:
string url = @"http://win-s6to7hc4d0o:12345/default.aspx"; SPWeb web = new SPSite(url).OpenWeb(); //根网站集的根网站 SPWebCollection collWebsite = web.Webs; foreach (SPWeb oweb in collWebsite) { foreach (SPList olist in oweb.Lists) { Label1.Text += oweb.Url + " " + olist.Title + "<br>"; } oweb.Close(); }
获取所有网站集
代码:
SPWebApplication webApplication = SPContext.Current.Site.WebApplication; SPSiteCollection siteCollections = webApplication.Sites; foreach (SPSite siteCollection in siteCollections) { Label1.Text += siteCollection.Url + "<BR>"; siteCollection.Close(); }