막혔습니다. 내가하고 싶은 일은 셀의 속성에 숫자를 할당하는 것입니다. 템플릿을 호출하고 호출 한 템플릿에 param을 전달하여이 작업을 수행합니다.Param 및 XSLT 템플릿 적용
<xsl:call-template name="RowIdInitializer" >
<xsl:with-param name="i">1</xsl:with-param>
</xsl:call-template>
I 그 다음 PARAM를 사용하여 전달할 정보 적용 템플릿에 그때 자체 (순환) 내에서 템플릿을 호출
<xsl:template name="RowIdInitializer">
<xsl:param name="i" />
<xsl:apply-templates select="Data" mode="table" >
<xsl:with-param name="iThis" select="$i"/>
</xsl:apply-templates>
<xsl:if test="@Exsist">
<xsl:call-template name="RowIdInitializer">
<xsl:with-param name="i" select="$i + 1">
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
유의 사항 PARAM로, 그리고 증분 값을 전달
내가 스스로를 호출 할 때 param을 템플릿에 추가합니다. 각 데이터 모드에 속성이있는 for 루프를 모방하려고합니다. Exist (RowIdInitializer에 대한 첫 번째 호출이 행 노드에서 Exist 특성을 찾을 수있는 한 수준에서 호출되기 때문에 나중에 문제가 발생할 수 있습니다.
<xsl:template match="Row">
..... some other stuff
<xsl:call-template name="RowIdInitializer" >
<xsl:with-param name="i">1</xsl:with-param>
</xsl:call-template>
</xsl:template>
그러나 이것은 문제가 아닙니다. 적용 템플릿으로 전달 된 매개 변수는 속성 데이터 - 스 와이프 페이지에 할당됩니다.
<xsl:template select="Data" mode="table" >
<xsl:param name="iThis" />
<td class="dataTableCell" onblur="cellEvent(event)" data-SwipePage ="$iThis">
..otherstuff...
</td>
문제가 자리 잡고있는 곳입니다. 값이 전달되지 않고 문자열 리터럴이 값으로 할당됩니다. 브라우저에서 개발 콘솔의 HTML을 검사 할 때 행의 하위 인 각 데이터 노드에 대해 생성 된 모든 td 요소에 대해 data-SwipePage ="$iThis"
이라는 속성이 표시됩니다. 나는이
<xsl:apply-templates select="Data" mode="table" >
<xsl:with-param name="iThis" select="1"/>
</xsl:apply-templates>
및
<xsl:apply-templates select="Data" mode="table" >
<xsl:with-param name="iThis">1 </xsl:with-pam>
</xsl:apply-templates>
나는 또한 사용하여 시도 파괴와-PARAM이
<xsl:with-param name="iThis">
<xsl:value-of select="$i"/>
</xsl:with-param>
같은 모든 <xsl:with-param
과 같은 단지 숫자 하나를 전달 시도 리터럴 문자열 값이 계속 사용되고 있습니다. 완벽하게 코드를 평가하지 않고