我想将Webpart放在包含SharePoint中文档库子文件夹的页面上,但是不知何故,我得到的唯一东西就是文档库的根文件夹。
是否有一个Webpart可以满足这一需求?
这是在Sharepoint 2010中仅使用Javascript(无需SharePoint Designer)的方法。
在Web部件页面上创建文档库Web部件
更改视图以显示所有没有文件夹的项目,并将项目限制设置为足够大的数量,这样就没有批次
在文档库Web部件下方添加Content Editor Web部件
添加以下javascript并更改第一个变量以满足您的需求
注意:如果您有多个文档库Web部件,则需要添加到此代码中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <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
}
}
} |
面对此问题的另一种方法是仅使用内容搜索WebPart(CSWP)并根据以下结果过滤结果:
您将需要一个符合您要求的UrlDepth值。最好的方法是使用一个较高的值(例如10),然后减小该值直到只显示您需要的文件。
关于文件夹路径,删除"(引号)",这样查询将执行"包含"查询,而不是"等于"查询:
结果将是这样的:
1
| path:[your site]/Docs/our_team UrlDepth:7 |
如果文件夹名称包含空格,则可能需要用引号将其引起来。就像是:
1
| path:[your site]/Docs/"our team" |
我已经解决了不需要Designer的工作。不那么优雅,但是任何高级用户都可以实现。
添加库Web部件后,转到页面并向下单击您要用作默认文件夹的文件夹。看到页面链接现在显示类似:
www.mysite.com/sharepoint/default.aspx?RootFolder=%2Fsubfoldername&FolderCTID=...
复制该链接。删除&FolderCTID和随后的所有内容。在这种情况下,剩下的是:
www.mysite.com/sharepoint/default.aspx?RootFolder=%2Fsubfoldername
使用此链接导航到该页面,该库将在该页面中按需要显示。请注意,它不会替换该页面的默认视图。
我可以通过创建一个新列并为整个"共享文档"列表指定一个关键字来做到这一点。
然后,我必须添加元数据。
将WebPart再次添加到页面。
创建一个可将文件显示为平面列表的视图,然后在新列上进行过滤(即关键字为/包含----)。
然后,在带有Web部件的页面上获得所需的列表。
原因是由webpart选择的文件夹不是由webpart本身控制,而是由querystring参数控制。
例如
1
| "?RootFolder=%2fDocuments%2fMyFolder1&FolderCTID=" |
因此,尽管存在webdav界面中的"谎言",但文件夹本身并不是"真实"文件夹
例如\\sharepointsite\documents
应该有一种包括所需RootFolder参数的方法,例如链接到包含查询字符串的页面(远不理想)。
我不知道执行此操作的任何Webpart。
默认情况下,我认为这是不可能的。
将显示共享文档的列表Web部件了解如何呈现库,但不了解如何过滤以仅显示一个子文件夹的内容。
最好创建一个过滤器Web部件并将该过滤器提供给"列表" Web部件,以便它根据文档库的fileref字段中定义的子文件夹进行过滤。但是,它似乎可以使用的过滤器是"类型","修改的"和"修改的依据"。因此,您可以将其仅过滤到您触摸过的文档,而不过滤给定位置的文档。
最终结果:滚动自己的Web部件。
将文档库列表视图Web部件放置在任何页面上。
编辑Web部件。
从过滤器中选择"内容类型"列和值"文件夹"
保存,您就完成了。
这样,它将仅显示根文件夹文件。
我使用的一种替代方法是将Page Viewer Web部件拖放到页面上,然后选择"文件夹"作为要查看的内容类型。然后将webdav UNC指定到文件夹" some_sharepoint-site some_site shared documents some_folder"