xsl生成的html表,每行都有一个按钮

时间:2013-09-03 07:31:56

标签: javascript html xslt xslt-1.0

我有一个问题,我希望有人可以帮助我。

这是我的xsl文件的缩写部分。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:con="http://eviware.com/soapui/config">
<xsl:output method="html" indent="yes" encoding="UTF-8"/>

<xsl:template match="/">

<html>
    <head>
    <script type="text/javascript">
        function anAus(id) 
        {
                    if (document.getElementById(id).style.display == 'none') 
                    { document.getElementById(id).style.display = 'block';
                } else 
                    { document.getElementById(id).style.display = 'none';}
            }
    </script>

</head>

<body>
<TABLE border="1">

<thead>
<TH>[ id ]</TH>
<TH>[ name ]</TH>
<TH>[ aktiv ]</TH>
<TH>[ result ]</TH>
<TH>[ help ]</TH>
</thead>

<tbody>
<xsl:for-each select="....." >

<TR>
    <TD><xsl:value-of select="ID" /></TD>   
    <TD><xsl:value-of select="name" /></TD> 
    <TD> <xsl:value-of select="@activated" /></TD>
    <TD><xsl:value-of select="result" /></TD>

     <!-- column 5 --- Button -->
    <xsl:variable name="button_name" select="concat('Button_',$ID)"/>
    <xsl:variable name="button_variable" select="concat('but_var',$ID)"/>

    <TD width="50" align="center"><input name="$button_name"   Type="button"   value="help" onClick="javascript:anAus('$button_variable')"/></TD>

</TR>   

<TR id="$button_variable" style="display:none">
        <TD colspan="5" >
<xsl:value-of select = "$verbesserung" /></TD>
</TR>

</tbody>
</TABLE>

现在解释我的问题:

对于每个元素,我在html表中生成一行。每一行都有 5个细胞。在最后一个单元格中有一个按钮,可以展开元素的帮助行。

到目前为止,我使用了一个java.script函数,它使用row-obejct的elementID来改变可见性。

我尝试通过元素id和a中的字符串生成按钮名称和objectid concat运营商。 但是在我的结果表中,每个按钮都具有相同的功能,只是为了扩展第一个入口行下的“helprow”。

我试图为每个条目提供“$ button_name”和“$ button_variable”,它们是正确的。有人可以在代码中找到错误。

1 个答案:

答案 0 :(得分:0)

尝试更改您的上一个td

<TD width="50" align="center">
   <input name="$button_name"   Type="button"   value="help" >
      <xsl:attribute name="onclick">javascript:anAus('<xsl:value-of select="$button_variable" />')</xsl:attribute>
   </input>
</TD>

你隐藏的tr就像这样:

<TR style="display:none">
   <xsl:attribute name="id"><xsl:value-of select="$button_variable" /></xsl:attribute>
   <TD colspan="5" >
     <xsl:value-of select = "$verbesserung" />
   </TD>
</TR>