C# 列表属性未更新
我在网站集的每个网站(SPWeb)上都有一个图像列表。我想设置此列表的特定属性。我使用一个站点集合遍历所有站点,查找列表并设置其属性。我的问题是,我可以设置一级站点中列表的属性,但无法设置二级或三级站点中列表的属性。比如说, 以下是站点层次结构: 主页(Rootweb)第一级 主页->Aboutus(子网站)第二级 主页->关于->我们的任务(子网站)第三级 这是代码C# 列表属性未更新,c#,sharepoint,sharepoint-2007,C#,Sharepoint,Sharepoint 2007,我在网站集的每个网站(SPWeb)上都有一个图像列表。我想设置此列表的特定属性。我使用一个站点集合遍历所有站点,查找列表并设置其属性。我的问题是,我可以设置一级站点中列表的属性,但无法设置二级或三级站点中列表的属性。比如说, 以下是站点层次结构: 主页(Rootweb)第一级 主页->Aboutus(子网站)第二级 主页->关于->我们的任务(子网站)第三级 这是代码 using (SPSite oSPsite = new SPSite(http://spdev/)) {
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();
}
}
是不是因为我先处理了父母 假设每个站点(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所提到的,有些属性不适用于所有列表类型,但我假设,因为您已经声明它适用于其中的一些类型,所以您没有设置任何属性。尝试列表集合,而不是GetList()。GetList()接受URL而不仅仅是列表名,因此如果它与list集合一起工作,那么URL就是您的问题。事实上,如果您在2010系列中,web.list.tryGetList(“listName”)甚至更好。图像库不支持.list.EnableModeration,这是一个复杂的问题。Hi Knight,我在MOSS2007上,那么哪个属性可以使用它?您试图在每个列表上更新哪些特定属性?我将更新代码以满足您的特定需要。2007年财产清单: