5
與freemarker有什麼好的,簡單的方法有交替行着色?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將進入電子郵件消息。
_index是一個巧妙的技巧。謝謝! – itsadok 2009-06-05 10:43:46
請使用「乾淨」CSS:在需要時添加相關類(class =「odd」或class =「even」),然後在CSS中相應樣式(即.even {background-color:gray;} .odd另外,在2.3.23中,如果類名是`even`和`odd`,那麼你可以編寫`
嗯......好吧,這是我想出來的最好的:
從震耳欲聾的沉默我推斷有這樣做的沒有更好的方式。
來源
2009-02-04 11:30:18 itsadok
你一定要明白,你可以使用CSS或JavaScript做同樣的事情:有沒有必要使用的FreeMarker? – 2009-02-04 11:35:53
使用FreeMarker的,也有在回答這個問題的有限的方式,但如果你想單獨使用CSS(這仍然允許的關注點分離),那麼這裏有一個方法:
將在下面的樣式表:
然後使用以下
tr
類來定義備用線:還有many resources可供選擇。
編輯:如果你的HTML是進入電子郵件,那麼你就不能確保客戶端的電子郵件客戶端將允許任何HTML你想投入它。在這一點上,您最好的選擇是使用FreeMarker類似於您的方式,除了您需要刪除
style
標記,並在<tr>
標記中使用bgcolor="color"
標記的每行顏色。來源
2009-02-04 11:43:44
現在我需要一種替代「linea」和「lineb」的方法 - 一個非常類似的問題... – itsadok 2009-02-04 12:56:15
+1的電子郵件提示 – itsadok 2009-03-17 06:45:43
一個解決方案,然後歸結爲:
在模板:
然而,正如在以前的答覆中指出,你可以用CSS做到這一點,如果沒有這個freemarker的解決方案(見http://www.w3.org/Style/Examples/007/evenodd):
然後只是使用一個沒有類的普通表S於行:
或用freemarker的生成表:
所以它是所有的CSS。
來源
2010-02-16 19:54:31 prule
隨着freemarker中,你可以使用
string
內置:來源
2010-02-16 20:24:11
來源
2010-05-19 18:30:43
您可以使用以下建設FreeMarker的模擬三元運算符: $ {?條件字符串(result_for_true,result_for_false)} 。
來源
2013-09-24 08:43:37
在FreeMarker的2.3.23:
來源
2015-07-05 17:29:42 ddekany
相關問題