2014-02-21 104 views
0

我正在使用以下代碼嘗試顯示圖片,如果複選框已激活,則不顯示任何圖片。根據條件顯示圖片XSL

我想「大錘」現有的代碼到這樣做對我和我想出了這一點:

<div> 
<xsl:choose> 
<xsl:when test="@FaceForward != ''"> 
<img style="border:1px solid; margin:5px 15px 5px 15px; width:125px;" src="{substring- before(@Picture,',')}" /> 
</xsl:when> 
</xsl:choose> 
</div> 

我不知道這是否會產生預期的結果,而我只是想知道如果某人對XSL具有更多的知識/經驗,可以快速瀏覽一下,並說「是」,這將起作用,或者「不」,這是一種更好的方式。

又好又簡單。如果選中了一個框,則會出現一張照片。如果該框爲空,則不顯示任何內容。

+0

我想它可以工作。你真的嘗試過了嗎?你真的有問題要解決嗎? –

+0

複選框的值是多少? –

回答

0

您可能想改爲使用if塊。我無法告訴你,如果沒有看到輸入XML,以下內容將會起作用。

<div> 
    <xsl:if test="@FaceForward != ''"> 
    <img style="border:1px solid; margin:5px 15px 5px 15px; width:125px;" src="{substring-before(@Picture,',')}" /> 
    </xsl:if> 
</div> 
+0

謝謝!可悲的是它沒有顯示任何東西。我實際上已將代碼稍微修改爲:

Face Forward
不確定輸入XML是什麼意思。我正在從Sharepoint列表中提取信息。列表中的項目之一是一個名爲「FaceForward」的複選框,如果選中,我希望顯示圖像(來自上面的代碼)。 – user3324906

+0

@ michael.hor257k有一個很好的例子,它可以縮短它甚至更遠(沒有'!='''的用法。)按照這個例子,如果圖像沒有顯示,我最好的猜測是圖像源是壞的和/或'@ FaceForward'被設置爲實際上是否按下按鈕的值,即,當按下時,「FaceForward」爲1,未按下時爲0。 – misterbear

0

在一次布爾測試中,字符串是真正的,如果它不是空的 - 所以你能縮短這:

<xsl:if test="@FaceForward"> 
    <!-- do stuff --> 
</xsl:if> 

無需使用選擇,如果你不具備多個(至少兩個)選擇。