从复选框列表xsl umbraco中选中复选框

时间:2012-02-03 11:22:12

标签: xslt checkbox umbraco

我有一个带有两个复选框的复选框列表。我想在检查其中任何一个时输出一个链接。两个复选框可以同时检查,或只检查一个,或者根本不检查。

我有一个名为value的变量,我得到的是dataType 2084,它是复选框列表。

如何检查列表中的单个复选框。 preValues有99和101。

任何可以提供帮助的人都非常感谢!

以下是我的尝试。

<xsl:param name="currentPage"/>
<xsl:param name="parentNode" select="/macro/parentNode"/>

<xsl:template match="/">

  <xsl:for-each select="$currentPage/OperationsMap[@id=$parentNode]/MarkerItem">

        <xsl:variable name="value" select="umbraco.library:GetPreValues('2084')"/>


        <div class="popup-box">

          <xsl:if test="$value/preValue[@alias='99'] = '1'">  
            <div class="colorbox-link-container">  
               <a href="#" class="colorboxLink">View current gallery</a>
             </div>     
            </xsl:if>

            <xsl:if test="$value/preValue[@alias='101'] = '1'">
              <div class="colorbox-link-container">
                <a href="#" class="colorboxLink">View historical project progress</a>
              </div>   
            </xsl:if>
        </div>

 </xsl:for-each>

</xsl:template>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:1)

GetPreValues返回umbraco原始数据类型的数据集,而不是在任何特定内容节点上检查它们的状态。

假设(未指明):

您的数据类型如下所示:

<preValues>
    <preValue id="99">Red</preValue>
    <preValue id="100">Green</preValue>
    <preValue id="101">Blue</preValue>
</preValues>

在将数据类型添加到文档类型时,不知道您给出了复选框列表的属性别名,我将使用以下

MarkerItem/colours

<强>代码:

此代码是动态编写的,因此没有时间对其进行测试。

<xsl:for-each select="$currentPage/OperationsMap[@id=$parentNode]/MarkerItem">

    <div class="popup-box">

        <!-- get the colours checked on MarkerItem -->
        <xsl:variable name="colours" select="./colours"/>
        <xsl:variable name="coloursValues" select="umbraco.library:Split($colours, ',')" />

        <!-- cycle through each of the checked colours -->
        <xsl:for-each select="$coloursValues/value">

            <xsl:choose>
                <xsl:when test=". = 'Red'">
                    <div class="colorbox-link-container">  
                        <a href="#" class="colorboxLink">View current gallery</a>
                    </div>
                </xsl:when>
                <xsl:when test=". = 'Blue'">
                    <div class="colorbox-link-container">
                        <a href="#" class="colorboxLink">View historical project progress</a>
                    </div>
                </xsl:when>
            </xsl:choose>

        </xsl:for-each>

    </div>

希望这对你有用。显然,将对颜色及其值的任何引用更新为特定于您的内容。