将共享文档子文件夹放置为SharePoint中的Web部件

将共享文档子文件夹放置为SharePoint中的Web部件

Placing Share Documents subfolder as a webpart in SharePoint

我想将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"


    推荐阅读