xslt中td的动态Colspan

时间:2012-10-27 07:19:15

标签: asp.net xslt xslt-2.0

我有......

<tr>
<xsl:variable name="noofrows" select="count(ChargeGroupsVo)"></xsl:variable>
<td colspan="$noofrows" style="border-top: 1px solid black;padding: 5px;"></td>
</tr>

下面 ChargeGroupsVo 是数量为8的数据类 我想把那个算作8作为colspan .... xslt的输出类型是HTML 怎么做......

2 个答案:

答案 0 :(得分:3)

您需要使用&#39;属性值模板&#39;这里。

而不是这样做....

 <td colspan="$noofrows" style="border-top: 1px solid black;padding: 5px;"></td>

你需要这样做

<td colspan="{$noofrows}" style="border-top: 1px solid black;padding: 5px;"></td>

花括号{}表示它是一个要计算的表达式,而不是字面输出的东西。

事实上,你根本不需要变量。你也可以这样做:

<td colspan="{count(ChargeGroupsVo)}" style="border-top: 1px solid black;padding: 5px;"></td>

答案 1 :(得分:0)

我这样做了......

<td>
                                                <xsl:for-each select="ChargeGroupNames">
                                                    <xsl:variable name="norows" select="count(ChargeGroupsVo)"></xsl:variable>
                                                    <xsl:if test="$norows &gt; 1">
                                                        <xsl:attribute name="colspan">
                                                            <xsl:value-of select="$norows + 2"/>
                                                        </xsl:attribute>
                                                    </xsl:if>
                                                </xsl:for-each>
</td>

动态添加属性和值....