我在SiteCollection的每个网站(SPWeb)上都有一个图像列表。我想设置此List的特定属性。我正在使用SiteCollection迭代所有站点并查找列表并设置其属性。我的问题是我可以设置列表存在于第一级站点的属性,但不能设置列表的属性,存在于二级或三级站点。例如,
这是网站层次结构:
主页(Rootweb)第1级
首页>关于(子网站)第二级
主页 - > Aboutus->我们的使命(子网站)第3级
这是代码!
using (SPSite oSPsite = new SPSite(http://spdev/))
{
foreach (SPWeb web in oSPsite.AllWebs)
{
SPList list = web.GetList("PublishingImages");
if (list != null)
{
foreach (SPContentType contentType in list.ContentTypes)
{
if (contentType.Name == "Publishing Picture")// but id is better
{
list.EnableModeration = false;
list.Update();
}
}
}
web.Dispose();
}
}
是因为我先处理父母吗?
答案 0 :(得分:1)
假设每个站点上的列表名称相同(PublishingImages),并且您在WSS 3.0或MOSS07上,这里是示例代码:
using (SPSite oSPsite = new SPSite("yourSiteUrlHere"))
{
SPWebCollection siteWebs = oSPsite.AllWebs;
foreach (SPWeb web in siteWebs)
{
try
{
SPList list = null;
try
{
list = web.Lists["PublishingImages"];
}
catch {}
if (list != null)
{
// todo: update list properties here
list.Update();
}
}
finally
{
if(web != null)
web.Dispose();
}
}
}
正如Ashutosh所提到的,有一些属性并不适用于所有列表类型,但是我假设你已经声明它适用于其中一些你没有设置任何这些属性。