我不确定我是否正确回答了这个问题,但我会尝试: -
我有一个html页面(xml + xslt),它有一个包含10个值的下拉列表。当我选择一个值时,例如。 ABC,我可以执行添加或删除或搜索。现在在其他每个页面上(添加,删除,搜索),我都有一个主页按钮。当我点击它时,它会回家,但下拉值会被重置。
如何保留用户选择的值?
我有以下代码,但它不能确定原因。
我正在研究TIBCO BusinessWorks。
<tr > <td>
<select name= "GetRelationCombo">
<xsl:for-each select="resultSet/Record">
<xsl:sort select="REL_NAME" />
<option>
<xsl:attribute name="value">
<xsl:value-of select="REL_NAME" />
</xsl:attribute>
<xsl:value-of select="REL_NAME" />
<xsl:if test="REL_NAME = 'resultSet/RelationshipName'">
<xsl:attribute name="selected">true</xsl:attribute>
</xsl:if>
</option>
</xsl:for-each>
</select>
</td></tr>
这是输入XML:
<?xml version = "1.0" encoding = "UTF-8"?>
<resultSet>
<Record>
<REL_NAME>ShapeID</REL_NAME>
</Record>
<Record>
<REL_NAME>eMPSQPType</REL_NAME>
</Record>
<Record>
<REL_NAME>GERSGLAccount</REL_NAME>
</Record>
<Record>
<REL_NAME>WageType</REL_NAME>
</Record>
<RelationshipName>PLANT</RelationshipName>
</resultSet>
请帮忙!!我处在一个很大的中间。
答案 0 :(得分:0)
首先,您使用的任何属性都需要在元素内的任何内容之前发生,因此:
<xsl:if test="REL_NAME = 'resultSet/RelationshipName'">
<xsl:attribute name="selected">true</xsl:attribute>
</xsl:if>
应该高于这个:
<xsl:value-of select="REL_NAME" />
这是不正确的,因为当REL_NAME实际上具有值“resultSet / RelationshipName”时它才会成立:
REL_NAME = 'resultSet/RelationshipName'
这是您需要的实际情况:
REL_NAME = ../RelationshipName
修改XSL:
<option>
<xsl:attribute name="value">
<xsl:value-of select="REL_NAME" />
</xsl:attribute>
<xsl:if test="REL_NAME = ../RelationshipName">
<xsl:attribute name="selected">true</xsl:attribute>
</xsl:if>
<xsl:value-of select="REL_NAME" />
</option>
作为旁注,我认为所选属性的正确值是“选中”,而不是“真实”,即使“真实”可能仍然有效。
<xsl:attribute name="selected">selected</xsl:attribute>