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

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

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

На данный момент моя логика выглядит так:

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, но я все еще получаю эти нежелательные библиотеки в результатах.


person Brian Roisentul    schedule 05.01.2011    source источник


Ответы (2)


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

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

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

person Dennis G    schedule 04.02.2011
comment
Ну, я просто пытался этого избежать, но, думаю, у меня нет выбора. - person Brian Roisentul; 04.02.2011
comment
Я не знаю другого способа исключить все материалы MS и включить только мои материалы... в конце концов, библиотека форм действительно является обычной библиотекой документов... ;-) - person Dennis G; 05.02.2011

Я использовал этот фрагмент кода:

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