Как получить все библиотеки документов, НО Шаблоны форм, Стиль, Индивидуальные отчеты

Я создаю веб-часть для 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 ответа

Решение

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

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

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

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

 if (docLib.Hidden || !docLib.AllowDeletion || docLib.IsCatalog || docLib.IsSiteAssetsLibrary || docLib.BaseTemplate == SPListTemplateType.WebPageLibrary)
{
   continue;
}
Другие вопросы по тегам