Шаблон XSLT использует значение XML в качестве строки таблицы 'bgcolor' - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть шаблон 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" /> где-нибудь еще в шаблоне, и значение в последнем электронном письме выглядит корректно, как текст. Этот вывод меня немного бесит - поэтому любая помощь очень ценится.

1 Ответ

0 голосов
/ 14 февраля 2012

Я буквально наткнулся на это.Все дело в области видимости в моем шаблоне XSLT. Я пытался получить доступ к значению BuildReportData/ReportColourHex из цикла xsl:for-each.Как только я объявил переменную вне цикла для хранения значения ReportColourHex, она заработала отлично.

Извините за потерю времени!

...