列表属性未更新

时间:2010-12-08 15:43:34

标签: c# sharepoint sharepoint-2007

我在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();
    } 
}                 

是因为我先处理父母吗?

1 个答案:

答案 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所提到的,有一些属性并不适用于所有列表类型,但是我假设你已经声明它适用于其中一些你没有设置任何这些属性。