我有以下XSL代码(格式' s /创建HTML表)。表格中的最后一列有一个按钮,它有一个与之关联的onclick事件。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" version="4.0"/>
<xsl:template match="/">
<table border="1" id="table1" align="center">
<tr><th>Item Number</th>
<th>Item Name</th>
<th>Description</th>
<th>Price</th>
<th>Quantity</th>
<th>Add</th></tr>
<xsl:for-each select="/Items/Item">
<tr><td><xsl:value-of select="ItemID"/></td>
<td><xsl:value-of select="ItemName"/></td>
<td><xsl:value-of select="ItemDesc"/></td>
<td><xsl:value-of select="ItemPrice"/></td>
<td><xsl:value-of select="ItemQty"/></td>
<td><button onclick="addtoCart(15001)">Add to Cart</button></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
我想要做的是用ItemID替换数字15001 ......所以代码可能是这样的 - 但我不确定应该如何构造它。
<td><button onclick="addtoCart(<xsl:value-of select="ItemID">)">Add to Cart</button></td>
哦......这里是javascript代码,它会调用它......
function addtoCart(items)
{
alert(items);
}
目前正如(通过值&#39; 15001&#39;)代码按预期工作。 我知道我可以实现纯粹在Javascript中尝试做的事情(通过迭代通过表来查看按下了哪个按钮),但我想要在&#39; addtoCart&#39;中传递ItemID。功能似乎会更清洁......&amp;很优雅。
答案 0 :(得分:0)
您可以在此处使用Attribute Value Templates。
试试这个:
installed facet="jst.web" version="2.5"
installed facet="jst.java" version="1.7"
属性中的花括号表示要计算的表达式,而不是字面输出。
注意:您也可以使用<button onclick="addtoCart({ItemID})">Add to Cart</button>
创建属性,但正如您所看到的,属性值模板的详细程度要低得多
xsl:attribute