2011-01-05 2 views
6

Je construis une partie Web pour SharePoint 2010 pour obtenir toutes les bibliothèques de documents avec des informations utiles pour l'utilisateur. Cela signifie que les utilisateurs ont téléchargé, etc. Je ne veux pas afficher les bibliothèques telles que les formulaires, la bibliothèque de styles, les rapports personnalisés, etc.Comment obtenir toutes les bibliothèques de documents MAIS Modèles de formulaire, style, rapports personnalisés

Je veux juste afficher uniquement les bibliothèques de documents avec des informations utiles, en tant que documents partagés, ou que d'autres utilisateurs créent à l'avenir, est-ce possible?

Actuellement, ma logique ressemble à ceci:

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

J'ai lu here que Guid 00bfea71-e717-4e80-aa17-d0c71b360101 retournera bibliothèques uniquement avec le modèle MS bibliothèque de documents, mais je suis toujours obtenir ces bibliothèques indésirables dans les résultats.

Répondre

4

Quel est le problème avec exclure les bibliothèques que vous ne veulent pas dans votre if?

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

vous sélectionnez déjà BaseType DocumentLibrary, de sorte que vous ne recevrez des bibliothèques de documents, malheureusement modèles de formulaire est un doclib trop, vous obtiendrez toujours dans votre sélection.

+0

Et bien je voulais éviter cela, mais bien, je pense que je n'ai pas le choix. –

+0

Je ne connais pas d'autre moyen d '"exclure tous les trucs MS et d'inclure seulement mes trucs" ... à la fin une bibliothèque de formulaires est vraiment juste une bibliothèque de documents ordinaire ... ;-) –

+0

Je pense que vous vouliez probablement dire utiliser && au lieu de || dans ce cas .. – markt

1

J'ai utilisé ce morceau de code:

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