2013-02-05 56 views
0

我有一个图像列表显示。在表中作为单列样以下Sharepoint 2010 xslt dataview:修改表结构来显示列表项

__________ 
|   | 
| image | 
|__________| 
__________ 
|   | 
| image | 
|__________| 
__________ 
|   | 
| image | 
|__________| 
__________ 
|   | 
| image | 
|__________| 

简单的代码,每个和显示此:在SharePoint 标准模板,每个项目将使用XSL循环

<xsl:for-each select="$Rows"> 
    <tr> 
     <td><xsl:value-of ......./> </td> 
    </tr> 
</xsl:for-each> 

我需要什么做的是每一行作为样本下面

__________  __________  __________ 
|   | |   | |   | 
| image | | image | | image | 
|__________| |__________| |__________| 
__________  __________  __________ 
|   | |   | |   | 
| image | | image | | image | 
|__________| |__________| |__________| 

显示3项我如何使用循环为此在XSLT。

回答

0

我通常不建议使用XSL嵌套for-each上课,但不是与你的XSLT胡闹了太多的利益,这个怎么样:

<xsl:for-each select="$Rows[position() mod 3 = 1]"> 
    <tr> 
     <!-- Select the (0-based) position within this iteration --> 
     <xsl:variable name="i" select="position() - 1" /> 
     <xsl:for-each select="$Rows[(position() &gt; ($i * 3)) and 
            (position() &lt;= (($i + 1) * 3))]"> 
     <td><xsl:value-of ......./> </td> 
     </xsl:for-each> 
    </tr> 
</xsl:for-each> 
+0

非常感谢。这是我需要的 – user1126128

0

另一种方式来做到这一点是使用<li>代替的表格单元格。这从底层数据正确设置了演示文稿。使用适当的CSS,您可以根据Web部件(?)的可用宽度来包装列表项。

<style> 
.imagelist li { float: left; } 
</style> 

然后...

<ul class="imagelist"> 
<xsl:for-each select="$Rows"> 
     <li><xsl:value-of ......./> </li> 
</xsl:for-each> 
</ul> 
当然

,你可能需要一个“宽度”样式规则添加到列表中的web部件/容器 - 这取决于你的图像的宽度。