我有一个电子邮件的XSLT模板。我希望能够指定整体模板颜色(在各种表格单元格上设置等),因此我传递给模板的其中一个字段是ReportHexColour C#属性 - 一个十六进制颜色字符串(例如#4F81BD)
public string ReportColourHex { get; set; }
无论我做什么,这个值都不会放在模板中元素的bgcolor
属性中(或者td style="background-color:..."
属性)。
在网上搜索后我尝试过:
<td bgcolor="{BuildReportData/ReportColourHex}" style="font-weight: bold">
以及:
<td style="font-weight: bold>
<xsl:attribute name="bgcolor">
<xsl:value-of select="BuildReportData/ReportColourHex" />
</xsl:attribute>
... other text here etc.
</td>
这两种想法都没有做任何事情。为行背景生成的HTML始终为白色(但如果我检查电子邮件的来源,则bgcolor实际上没有值,即它看起来像这样:<td bgcolor=""
首先想到的是数据不存在。但是,我可以在模板中的任何其他位置呈现<xsl:value-of select="BuildReportData/ReportColourHex" />
,并且值在最终电子邮件中显示为文本。这个让我有点生气 - 所以任何帮助都非常感激。
答案 0 :(得分:0)
我真的偶然发现了这一点。这完全是关于我的XSLT模板中的范围。我试图从BuildReportData/ReportColourHex
循环内部访问xsl:for-each
值。一旦我在循环外声明了一个变量来保存ReportColourHex值,它就能很好地工作。
抱歉浪费时间!