SharePointのドキュメントライブラリのサブフォルダーを保持するページにWebパーツを配置したいのですが、どういうわけか、取得するのはドキュメントライブラリのルートフォルダーだけです。
このニーズを満たすWebパーツはありますか?
SharePointのドキュメントライブラリのサブフォルダーを保持するページにWebパーツを配置したいのですが、どういうわけか、取得するのはドキュメントライブラリのルートフォルダーだけです。
このニーズを満たすWebパーツはありますか?
ここでは、Sharepoint 2010 で Javascript のみを使用してそれを行う方法を示します。SharePoint Designer は必要ありません。
注: 複数のドキュメント ライブラリ Web パーツがある場合は、このコードに追加する必要があります。
<script type="text/javascript" language="javascript">
//change this to meet your needs
var patt = /FOLDER%20TO%20SEARCH/gi;
var x = document.getElementsByTagName("TD"); // find all of the TDs
var i=0;
for (i=0;i<x.length;i++)
{
if (x[i].className =="ms-vb-title") //find the TDs styled for documents
{
var y = x[i].getElementsByTagName("A"); //this gets the URL linked to the name field
//conveniently the URL is the first variable in the array. YMMV.
var title = y[0];
//search for pattern
var result = patt.test(title);
//If the pattern isn't in that row, do not display the row
if ( !result )
{
x[i].parentNode.style.display = "none"; //and hide the row
}
}
}
</script>
Designer を必要としない回避策があります。エレガントではありませんが、パワーユーザーなら誰でも達成できます。
ライブラリ Web パーツを追加したら、ページに移動し、既定にするフォルダーをクリックします。ページ リンクが次のようになっていることを確認します。
www.mysite.com/sharepoint/default.aspx?RootFolder=%2Fsubfoldername&FolderCTID=...
そのリンクをコピーします。およびそれに続くすべてを削除&FolderCTID
します。この場合、残っているのは次のとおりです。
www.mysite.com/sharepoint/default.aspx?RootFolder=%2Fsubfoldername
このリンクを使用してページに移動すると、そのページ内で必要に応じてライブラリが表示されます。そのページのデフォルト ビューを置き換えるものではないことに注意してください。
デフォルトでは、それは不可能だと思います。
共有ドキュメントを表示するリスト Web パーツは、ライブラリをレンダリングする方法を理解していますが、1 つのサブフォルダーの内容のみを表示するようにフィルター処理する方法を理解していません。
フィルター Web パーツを作成し、そのフィルターをリスト Web パーツに提供して、ドキュメント ライブラリの fileref フィールド内で定義されたサブ フォルダーに従ってフィルター処理を行うと便利です。ただし、使用できるように見えるフィルターは、Type、Modified、および Modified By です。そのため、特定の場所にあるドキュメントではなく、触れたドキュメントだけにフィルターをかけることができます。
最終結果: 独自の Web パーツを展開します。
新しい列を作成し、共有ドキュメント リスト全体のキーワードを指定することで、これを行うことができました。
次に、メタデータを追加する必要がありました。WebPart をページに再度追加します。ファイルをフラット リストとして表示できるようにするビューを作成し、新しい列 (キーワードが ---- を含む場所) でフィルター処理します。次に、Web パーツを使用してページに必要なリストを取得します。
その理由は、Web パーツによって選択されたフォルダーが Web パーツ自体ではなく、クエリ文字列パラメーターによって制御されるためです。
例えば
"?RootFolder=%2fDocuments%2fMyFolder1&FolderCTID="
そのため、フォルダーは「本当の」フォルダーではありません。たとえば、webdav インターフェースである「嘘」にもかかわらずです。\\sharepointsite\documents
クエリ文字列が含まれているページへのリンクのように、必要な RootFolder パラメータを含める方法が必要です (理想とはほど遠い)。
これを行う Web パーツは知りません。
ドキュメント ライブラリ リスト ビュー Web パーツを任意のページに配置します。Web パーツを編集します。フィルタから、列「コンテンツ タイプ」と値「フォルダ」を選択して保存すれば完了です。
そうすることで、ルートフォルダーファイルのみが表示されます。
私が使用した代替手段の 1 つは、ページ ビューアー Web パーツをページにドロップし、表示するものの種類として [フォルダー] を選択することです。次に、「\some_sharepoint-site\some_site\shared documents\some_folder\」などのフォルダーに webdav UNC を指定します。