2013-07-15 37 views
2

我有一個來自C#的逗號分隔列表,我在XSLT中解析並將其加載爲下拉列表。用戶從下拉菜單中選擇該選項並提交頁面後,如果頁面中未填充其他字段,我嘗試使用此下拉列表中的選定選項重新加載頁面。在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值'。例如,在圖像中,您可以看到運營商的文本 - Metro PCS。

任何幫助,將不勝感激。

謝謝。 You can find the image here

編輯:我曾嘗試選擇屬性多種方式和他們一樣的

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

無似乎工作。

回答

2

嘗試更換這兩行:

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

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

我想你想的屬性添加到「:SEL價值」,這顯然是行不通的文本節點。

編輯

以在您的模板仔細一看,我認爲這是一個問題,像上面(添加屬性的文本節點)建議。 試試這個:

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

當你的,如果爲true,則試圖將屬性添加到value-添加文本節點。所有屬性添加都需要在添加任何子節點之前添加,無論是文本還是其他。

+0

嗨,謝謝你的迴應。該變化產生與以前相同的輸出。但是再次選擇的值不會以下拉菜單顯示。我不必添加「sel值」,只是添加以表明條件已滿足。 – superstar

+0

是的,你是對的!我正在考慮你的關於將屬性添加到文本節點的評論。我試圖糾正類似的路線,並工作。非常感謝你。 – superstar

+1

很高興聽到它! – dkackman

相關問題