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にしていると仮定すると、
GetList()の代わりにListsコレクションを試してください。 GetList()はリスト名だけでなく、Listsコレクションで動作する場合はURLが問題になります。実際には、2010年のファミリーにいればweb.Lists.TryGetLists( "listName")はさらに優れています。 – knight0323
list.EnableModerationはイメージライブラリではサポートされていません。これは、ダフテートの質問 –
の可能な複製[ルートWebとそのすべてのサブサイトからループする方法](http://stackoverflow.com/questions/4386186/how-to -loop-through-a-root-web-and-all-its-subsites) –