0

表示する画像リストがあります。SharePoint の標準テンプレート。各項目は xsl:for-each を使用してループし、以下のサンプルのように 1 行としてテーブルに表示されます

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

このための簡単なコード:

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

私がする必要があるのは、以下のサンプルとして各行に3つのアイテムを表示することです

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

ループを使用して xslt でこれを行うにはどうすればよいですか。

4

2 に答える 2

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 パーツ/コンテナーに追加する必要がある場合があります。これは、画像の幅によって異なります。

于 2013-03-07T18:26:02.413 に答える
0

通常、XSL でネストされたfor-eaches を使用することはお勧めしませんが、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>
于 2013-02-05T10:42:41.753 に答える