2011-01-05 4 views
6

私は、SharePoint 2010のWebパーツを構築して、すべてのドキュメントライブラリをユーザーに役立てることができます。これは、ユーザーがアップロードしたドキュメントを意味します。私はフォームテンプレート、スタイルライブラリ、カスタマイズされたレポートなどのライブラリを表示したくありません。すべてのドキュメントライブラリの入手方法フォームテンプレート、スタイル、カスタマイズレポート

便利な情報、共有文書、または今後作成する他のユーザーとして、それは可能ですか?

は現在、私のロジックは次のようになります。

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文書ライブラリテンプレートを使用してライブラリのみを返すことhere読んだが、私はまだ結果では、これらの望ましくないのライブラリを取得しています。

答えて

4

ライブラリを除外して何が問題になるのですかあなたのifで欲しいですか?

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

あなたが唯一残念なフォームテンプレートがあまりにもdoclibあるので、あなたは常にあなたの選択でそれを取得します、ドキュメントライブラリを受け取ることになりますので、あなたはすでに、BaseType DocumentLibraryを選択しています。

+0

まあ、私はちょうどそれを避けるためにしようとしていたが、まあ、私は選択肢がないと思います。 –

+0

私は「MSのものをすべて除外し、自分のものだけを含める」という他の方法は知らない...最終的にフォームライブラリは本当に普通のドキュメントライブラリである...--) –

+0

あなたはおそらく||の代わりに&&を使用するこの場合は.. – markt

1

私は、コードのこの部分を使用:

if (docLib.Hidden || !docLib.AllowDeletion || docLib.IsCatalog || docLib.IsSiteAssetsLibrary || docLib.BaseTemplate == SPListTemplateType.WebPageLibrary) 
{ 
    continue; 
} 
関連する問題