0

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

我有一个包含 10 个值的下拉列表的 html 页面(xml+xslt)。当我选择一个值时,例如。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>

请帮忙!!我正忙于一件大事。

4

1 回答 1

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>

作为旁注,我认为 selected 属性的正确值是“selected”,而不是“true”,即使“true”可能仍然有效。

<xsl:attribute name="selected">selected</xsl:attribute>

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

于 2013-01-09T13:03:35.273 回答