【问题标题】:selected attribute in xslt drop downxslt 下拉列表中的选定属性
【发布时间】:2013-07-15 18:47:54
【问题描述】:

我有一个来自 C# 的逗号分隔列表,我在 XSLT 中对其进行解析并将其加载为下拉列表。用户从下拉列表中选择选项并提交页面后,如果页面中没有填写其他字段,我会尝试使用此下拉列表的选定选项重新加载页面。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template name="parseString">
<xsl:param name="list"/>
<xsl:if test="contains($list, ',')">
  <xsl:element name="option">
    <xsl:attribute name="value">
      <xsl:value-of select="substring-before($list, ',')"/>
    </xsl:attribute>
    <xsl:value-of select="substring-before($list, ',')"/>
    <xsl:if test="substring-before($list, ',')=$carrier">
      : sel value
      <xsl:attribute name="SELECTED"></xsl:attribute>
    </xsl:if>        
  </xsl:element>
  <xsl:call-template name="parseString">
    <xsl:with-param name="list" select="substring-after($list, ',')"/>
  </xsl:call-template>
</xsl:if>

但在重新加载时,下拉列表中的选定值不会保持不变。 但我可以看到符合条件并显示的文本 - 'sel value'。例如,在图片中,您可以看到运营商的文字 - Metro PCS。

任何帮助将不胜感激。

谢谢。

编辑:我尝试了多种方法来选择属性,例如

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

它们似乎都不起作用。

【问题讨论】:

    标签: xslt


    【解决方案1】:

    尝试交换这两行:

      : sel value
      <xsl:attribute name="SELECTED"></xsl:attribute>
    

    成为

      <xsl:attribute name="SELECTED"></xsl:attribute>
      : sel value
    

    我认为您正在尝试向“:sel value”文本节点添加一个显然不起作用的属性。

    编辑

    仔细查看您的模板,我认为这是上面建议的问题(向文本节点添加属性)。 试试这个:

    <xsl:element name="option">
        <xsl:attribute name="value">
          <xsl:value-of select="substring-before($list, ',')"/>
        </xsl:attribute>
    
        <xsl:if test="substring-before($list, ',')=$carrier">
          <xsl:attribute name="SELECTED"></xsl:attribute>
          : sel value
        </xsl:if>        
        <xsl:value-of select="substring-before($list, ',')"/>
      </xsl:element>
    

    当您的 if 为 true 时,它​​会尝试向 value-of 添加的文本节点添加一个属性。您的所有属性添加都需要在添加任何子节点之前进行,无论是文本还是其他。

    【讨论】:

    • 您好,感谢您的回复。该更改产生与以前相同的输出。但再次选择的值未显示在下拉列表中。我不用加“sel值”,加了就说明条件满足了。
    • 是的,你是对的!我正在考虑您关于将属性添加到文本节点的评论。我试图在类似的线路上进行更正,并且有效。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2020-07-15
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多