使用xslt保留html中的下拉列表值?

时间:2013-01-09 10:38:17

标签: html xslt if-statement tibco businessworks

我不确定我是否正确回答了这个问题,但我会尝试: -

我有一个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>

请帮忙!!我处在一个很大的中间。

1 个答案:

答案 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>

http://reference.sitepoint.com/html/option/selected