2010-12-12 112 views
0

我在不同的地方看到过这个问题,但从来没有见过一个可行的解决方案,它不涉及安装新的Web部件(我无法做到这一点)。CQWP:每组显示n个项目

我有一个文档库,其中包含具有特定文档类型的文档,其中包含“区域”的值。

我已成功地改变在.webpart文件和ContentQueryMain.xsl,Itemstyle.xsl,HeaderStyle.xsl文件“CustomViewFields”参数,并使用CQWP的分组功能生成以下的输出:

<div class="myDocuments">  
<div class="group"> 
    <h2>My region</h2> 
    <ul> 
    <li>Document 1</li> 
    <li>Document 2</li> 
    <li>Document 3</li> 
    <li>Document 4</li> 
    </ul> 
</div> 
<div class="group"> 
    <h2>My other region</h2> 
    <ul> 
    <li>Document 1</li> 
    <li>Document 2</li> 
    <li>Document 3</li> 
    <li>Document 4</li> 
    </ul> 
    </div> 
</div> 

这一切都很好,但我只想在每个地区按日期排序最多显示三个文档。

我还没有能够找出任何CAML查询代码来实现这个功能,所以我一直在寻找使用if语句在当前区域创建三个时删除任何值 - 但不知道是什么CQWP输出的XML证明是困难的。

目前这个事情是如何寻找:

<xsl:if test="(count(preceding-sibling::Region = @Region)) &lt 3"> 
    <li><xsl:value-of select="{$Region}" /></li> 
<xsl:if /> 

任何帮助会之前,我象征性地扔的SharePoint窗外不胜感激!

马特

+0

这不是一个完整的问题。请指定完整的(但尽可能小的)XML文档和完整的(但尽可能小的)想要的结果,并明确说明您希望转换做什么/实现什么。 – 2010-12-12 15:08:43

+2

请提供您正在使用的xslt,以便我可以修改并向您发送正确的一个 – 2010-12-12 15:38:38

+0

这是一个棘手的问题 - 因为它是Sharepoint Web部件的输出,我不完全确定XML的外观 - 它几乎就像试图编写XSLT盲人一样。再加上SharePoint调用三个不同的XSLT文件来处理其结果的不同部分这一事实,它使得尝试给出示例数据非常困难。 我会走开并试图找出SharePoint正在处理的数据,然后共享一些测试数据。 – 2010-12-17 22:52:23

回答