Как получить все библиотеки документов, НО Шаблоны форм, Стиль, Индивидуальные отчеты - PullRequest
6 голосов
/ 05 января 2011

Я создаю веб-часть для SharePoint 2010, чтобы получить все библиотеки документов с полезной информацией для пользователя. Это означает, что документы, загруженные пользователями, и т. Д. Я не хочу показывать такие библиотеки, как шаблоны форм, библиотека стилей, настраиваемые отчеты и т. Д. *

Я просто хочу показать только библиотеки документов с полезной информацией, как Shared Documents или любые другие пользователи, которые будут созданы в будущем, возможно ли это?

В настоящее время моя логика выглядит так:

SPListCollection docLibraryColl = wb.GetListsOfType(SPBaseType.DocumentLibrary);

Guid docLibFeatId = new Guid("00bfea71-e717-4e80-aa17-d0c71b360101");

foreach (SPList list in docLibraryColl)
{
    if (list.TemplateFeatureId == docLibFeatId && !list.Hidden)
    {
        SPDocumentLibrary doclib = (SPDocumentLibrary)list;
        //rest of the logic here...  
    }
}

Я прочитал здесь , что Guid 00bfea71-e717-4e80-aa17-d0c71b360101 вернет только библиотеки с шаблоном MS Document Library, но я все еще получаю эти нежелательные библиотеки в результатах.

Ответы [ 2 ]

4 голосов
/ 04 февраля 2011

Что не так с исключением библиотек, которые не нужны в вашем if?

...
if (!list.Hidden && list.title != "Style Library" && list.title != "Form Templates")
...

Вы уже выбираете BaseType DocumentLibrary, поэтому вы будете получать толькобиблиотеки документов, к сожалению, шаблоны форм тоже документо, так что вы всегда получите его по своему выбору.

1 голос
/ 16 июня 2014

Я использовал этот кусок кода:

 if (docLib.Hidden || !docLib.AllowDeletion || docLib.IsCatalog || docLib.IsSiteAssetsLibrary || docLib.BaseTemplate == SPListTemplateType.WebPageLibrary)
{
   continue;
}
...