XSL / XSLT - 为DIV添加value-of作为样式属性

时间:2013-01-02 17:27:37

标签: sharepoint xslt sharepoint-2010 content-query-web-part

我正在使用SharePoint 2010和内容查询Web部件从SharePoint列表中输出日期列表。此列表的显示由名为ItemStyle.xsl

的XSL样式表控制

我在一般外观方面取得了进展,但现在想要将其检索的一个字段添加为背景/样式属性。

我认为我遇到的问题与xsl值有关 - 选择在标记的末尾有一个右括号,因此无意中关闭了我的DIV。有人可以查看下面的代码,并建议在开放DIV中打印CategoryColour的替代方法。

我偶尔也会在html中插入“xmlns:ddwrt”,我希望至少能看到“style:background ....”

非常感谢

<xsl:stylesheet                                                                                                                                                                                         
  version="1.0"                                                                                                                                                                                         
  exclude-result-prefixes="x d xsl msxsl cmswrt"                                                                                                                                                        
  xmlns:x="http://www.w3.org/2001/XMLSchema"                                                                                                                                                            
  xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"                                                                                                                                                 
  xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"                                                                                                                            
  xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"                                                                                                                               
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"                                                                                                                                                      
  xmlns:msxsl="urn:schemas-microsoft-com:xslt">                                                                                                                                                         

<!-- PrettyCal Template -->                                                                                                                                                                             
<xsl:template name="PrettyCal" match="Row[@Style='PrettyCal']" mode="itemstyle">                                                                                                                        
    <xsl:variable name="Start"><xsl:value-of select="@EventDate" /></xsl:variable>                                                                                                                      
    <xsl:variable name="End"><xsl:value-of select="@EndDate" /></xsl:variable>                                                                                                                          
    <xsl:variable name="AllDay"><xsl:value-of select="@AllDayEvent" /></xsl:variable>                                                                                                                   
    <xsl:variable name="Location"><xsl:value-of select="@EventLocation" /></xsl:variable>                                                                                                               
    <xsl:variable name="CategoryColour"><xsl:value-of select="@EventCategoryColour" /></xsl:variable>                                                                                                   

    <div class="upcoming-events" style="background: {CategoryColour}" ><xsl:value-of select="$CategoryColour"/>                                                                                         

        <h2 class="event-title">                                                                                                                                                                        
        <a>                                                                                                                                                                                             
        <xsl:attribute name="onClick">                                                                                                                                                                  
            javascript:SP.UI.ModalDialog.showModalDialog({ url: '/services/marketing/Lists/College%20Calendar/DispForm.aspx?ID=<xsl:value-of select="@ID" />', title: 'Event Details' }); return false; 
        </xsl:attribute>                                                                                                                                                                                
        <xsl:value-of select="@Title" /></a></h2>                                                                                                                                                       

    </div>                                                                                                                                                                                              
</xsl:template>                                                                                                                                                                                         
</xsl:stylesheet>                                                                                                                                                                                       

2 个答案:

答案 0 :(得分:8)

你有:

  <div class="upcoming-events" style="background: {CategoryColour}" ><xsl:value-of select="$CategoryColour"/>                                                                           

你真的想要

  <div class="upcoming-events" style="background: {$CategoryColour}" ><xsl:value-of select="$CategoryColour"/>                                                                           

答案 1 :(得分:2)

您在变量$前面遗漏了CategoryColour