2013-09-03 2 views
1

나는 문제가있어 누군가가 나를 도울 수 있기를 바랍니다.xsl 모든 행에 대해 html 테이블 wirh 버튼 생성

여기 내 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 테이블의 행을 생성합니다. 모든 행에는 개의 셀이 있습니다. 마지막 셀에는 요소에 대한 도움말 행을 확장 할 수있는 버튼이 있습니다.

지금까지 필자는 row-obejct의 elementID를 사용하여 가시성을 변경하는 java.script 함수를 사용했습니다.

concat 연산자에서 요소 id 및 문자열로 버튼 이름과 objectid를 생성하려고합니다. 하지만 내 결과 테이블에서 모든 버튼은 첫 번째 항목 행 아래의 "도움 요청"을 확장하기 위해서만 동일한 기능을 가지고 있습니다.

각 항목에 대해 "$ button_name"및 "$ button_variable"을 제공하려했으나 정확합니다. 코드에서 실수를 발견 할 수 있습니까?

+0

코드 확인을 보이는을, 문제가 무엇입니까? – Cherniv

+0

문제는 모든 버튼이 동일한 기능을 호출한다는 것입니다. 항상 도움말 행 1에 대한 가시성을 호출합니다. 결과 HTML을 살펴보면 '$ button_name'및 '$ button_variable'은 값과 함께 사용되지 않고 이름과 함께 사용됩니다. 다음과 같이 입력하십시오 : Logi

+0

내 대답을 업데이트했습니다. 지금 확인하십시오. – Cherniv

답변

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> 
+0

괜찮습니다. 내가 찾은거야. 파이어 폭스 23이이 일을 할 수없는 이유가 무엇입니까? IE 만 변환합니다. – Logi

+0

@Logi 예 물론 FF는 다른 XSLT 엔진을 사용합니다 – Cherniv

+0

@Logi Google로 전송할 수 있습니다 : https://www.google.com/search?q=firefox+xslt&oq=firefox+xslt&sourceid=chrome&ie=UTF-8 – Cherniv

관련 문제