如何在SharePoint Designer 2013中从文档库中的多个文件夹中获取第一个文件 &g



我有一个内置在SharePoint的文档库。在这个库中有多个文档集包含模板文档的文件夹。我想创建一个视图,它只显示每个文件夹中最近的文档。这样做的原因是为了让库维护者能够将新文件放入其指定的文件夹中,并且用户将能够看到每个文件夹中最新文档列表的视图,而无需单击库并检查每个文件夹以查看是否上传了新文件。

在网站上直接在SharePoint上创建视图不能满足上述显示文档的要求。我已经查看了一个内容查询Web部件,但是这个功能也没有足够的设置来使这个功能工作。我选择使用SharePoint Designer 2013,创建了一个自定义Web部件,但在编辑视图时遇到了问题。通过SharePoint Designer,我已经设法对进行排序根据他们的修改日期来记录,这将最新的文档放在列表的顶部。然后我设法将分组记录按文件夹名称或"模板"类型显示。现在我被困在试图解析通过SharePoint设计器生成的XSLT源代码,并找出一种方法,如何只显示每个文件夹/组的第一个记录。我目前有一个使用jQuery的REST调用方法,它似乎工作得很好,但我正试图找到是否有一个XSLT方法可以解决这个问题。

更新-添加XML片段

下面是一个类似于库的XML片段。

<Library>
<Template>
<FileName>ExpensesReport.xslx</FileName>
<ModifiedDate>2022-12-10</ModifiedDate>
<TemplateType>Excel</TemplateType>
</Template>
<Template>
<FileName>Presentation.ppt</FileName>
<ModifiedDate>2022-12-11</ModifiedDate>
<TemplateType>PowerPoint</TemplateType>
</Template>
</Library>

最后我终于想出了解决办法。我找到了这个资源,从每个组中获得第一项。我使用了提供的一个解决方案,并将其结合到我的问题中。

test="not(templateType = preceding::Row/@templateType)"
在使用SharePoint设计器时,我使用了过滤器图标添加这个条件:@fileType != 'not null'。我还在这一部分中添加了公式:
<xsl:with-param name="Rows" select=$Rows[not(templateType = preceding::Row/@templateType)]

通过这些更改,视图只显示每个模板文件夹中的第一个文件。

最新更新