How to get all document libraries BUT Form Templates, Style, Customized Reports

对着背影说爱祢 提交于 2019-12-22 05:35:07

问题


I'm building a webpart for SharePoint 2010 to get all the document libraries with usefull info for the user. This means, docs that users uploaded, etc. I don't want to show libraries such as Form Templates, Style Library, Customized Reports, etc...

I just want to show only the document libraries with usefull info, as Shared Documents, or any other users create in the future, is that possible?

Currently, my logic looks like this:

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...  
    }
}

I've read here that Guid 00bfea71-e717-4e80-aa17-d0c71b360101 will return only libraries with MS Document Library template, but I'm still getting those undesired libraries in the results.


回答1:


What's wrong with excluding the libraries you don't want in your if?

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

You are already selecting the BaseType DocumentLibrary, so you will only receive document libraries, unfortunately form templates is a doclib too, so you will always get it in your selection.




回答2:


I used this piece of code:

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


来源:https://stackoverflow.com/questions/4606533/how-to-get-all-document-libraries-but-form-templates-style-customized-reports

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!