2010-12-08 28 views
0

SiteCollectionの各Web(SPWeb)にイメージリストがあります。このListの特定のプロパティを設定したいと思います。 SiteCollectionを使用してすべてのサイトを繰り返し、リストを検索してそのプロパティを設定しています。私の問題は、最初のレベルのサイトに存在するリストのプロパティを設定できますが、2番目または3番目のレベルのサイトに存在するリストのプロパティは設定できないことです。例えば、ここでリストのプロパティが更新されない

は、サイト階層である:

ホーム(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(); 
    } 
}     

私は親を先に処分していますか?リスト名は、すべてのサイト(PublishingImages)に同じであり、あなたがここにWSS 3.0またはMOSS07にしていると仮定すると、

+0

GetList()の代わりにListsコレクションを試してください。 GetList()はリスト名だけでなく、Listsコレクションで動作する場合はURLが問題になります。実際には、2010年のファミリーにいればweb.Lists.TryGetLists( "listName")はさらに優れています。 – knight0323

+0

list.EnableModerationはイメージライブラリではサポートされていません。これは、ダフテートの質問 –

+0

の可能な複製[ルートWebとそのすべてのサブサイトからループする方法](http://stackoverflow.com/questions/4386186/how-to -loop-through-a-root-web-and-all-its-subsites) –

答えて

1

はサンプルコードです:アッシュートッシュが述べたように

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

、いくつかのプロパティドン」がありますすべてのリストタイプで作業しますが、あなたがすでにそれを設定していないもののいくつかで動作すると述べているので、私は仮定しています。

+0

こんにちは騎士、私はMOSS2007に乗っていますので、どちらのプロパティでも動作しますか? –

+0

各リストでどの特定のプロパティを更新しようとしていますか?特定のニーズに合わせてコードを更新します。 2007プロパティリスト:http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist_properties(v=office.12).aspx – knight0323

+0

ありがとうKnight !!私はこの関数を使ってそれをやった:) –

関連する問題