用freemarker替换行颜色的一种好简单方法是什么?
这真的是最好的方法吗?
<#assign row=0>
<#list items as item>
<#if (row % 2) == 0>
<#assign bgcolor="green">
<#else>
<#assign bgcolor="red">
</#if>
<tr style='background-color: ${bgcolor}'><td>${item}</td></tr>
<#assign row = row + 1>
</#list>
我尝试这样做:
<#assign row=0>
<#list items as item>
<tr style='background-color: ${(row % 2) == 0 ? "green" : "blue"}'><td>${item}</td></tr>
<#assign row = row + 1>
</#list>
但是显然您不能在其中使用三元运算符。
注意:我想我应该早先提到它,但是我不能使用css类或javascript,因为此HTML即将成为电子邮件。
最佳答案
如果您有一系列表,则可能需要执行一些功能。
<#function zebra index>
<#if (index % 2) == 0>
<#return "white" />
<#else>
<#return "#efefef" />
</#if>
</#function>
<#assign arr=["a","b","c","d"] />
<table>
<#list arr as n>
<tr><td bgcolor=${zebra(n_index)}>${n}</td></tr>
</#list>
</table>
和使用list时的_index builtin使您不必自己创建和增加索引变量。
关于templates - 在freemarker中交替使用表格行颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/506262/