Как получить все сайты и дочерние сайты в SharePoint и получить доступ к библиотеке / списку изображений?

Как получить все сайты и дочерние сайты в SharePoint и получить доступ к библиотеке / списку изображений?

Я с нетерпением жду возможности достичь этого с помощью объектной модели SharePoint. Внутри каждого сайта или дочернего сайта я хочу получить доступ к библиотеке / списку изображений,

alt text

После перехода к этому списку, как мне установить для параметра «Утверждение необходимого содержимого для выбранных элементов» значение «Да» или «Нет»?


person code master    schedule 03.12.2010    source источник


Ответы (1)


Используйте объект SPFarm, чтобы получить все веб-приложения, затем используйте SPWebApplication, чтобы получить всю коллекцию сайтов, а затем используйте SPSite, чтобы получить все веб-сайты.

Вам нужно пройти через все три цикла, чтобы получить все сайты в семействе сайтов. Если вы хотите найти дочерние сайты в spweb, вызовите все spweb рекурсивно, пока вы не найдете никаких веб-сайтов в spweb для каждого spweb.

SPFarm farm = SPFarm.Local;
SPWebService service = farm.Services.GetValue<SPWebService>("");
foreach (SPWebApplication webapp in service.WebApplications)
{
    foreach (SPSite sitecoll in webapp.Sites)
    {
        foreach (SPWeb web in sitecoll.AllWebs)
        {
            <<Use recursion here to Get sub WebS>>
            web.Dispose();
        }
        sitecoll.Dispose();
    }
}
person Ashutosh Singh-MVP SharePoint    schedule 03.12.2010
comment
Привет, Ашухош! Большое спасибо за ваш ответ. Но как я могу получить доступ к библиотеке изображений внутри каждого сайта / дочернего сайта? - person code master; 03.12.2010
comment
foreach (SPWeb web в sitecoll.AllWebs) {foreach (SPList lib в web.Lists) {foreach (SPContentType contentType в lib.ContentTypes) {if (contentType.Name == Picture) // лучше использовать contentType.Id для сравнения {lib .EnableModeration = true; }}} web.Dispose (); - person Ashutosh Singh-MVP SharePoint; 03.12.2010