thymeleaf - table tr th:每个都有多个条件:if

时间:2015-12-14 04:11:29

标签: spring html-table thymeleaf

我想制作一些有条件的桌子。如果该项目低于库存的0.33%,则行颜色必须设置为红色。如果项目大于0.33%且低于0.66%,则行颜色必须设置为橙色,如果项目大于0.66%,则行颜色必须设置为黄色。

我正在使用th:每个标签TR中的每一个,并给出:if,但只显示一行,库存大于0.66%

<tr th:each="item: ${items}" th:if="${item.sisa/item.stok &lt; 33/100 }" style="background-color:red" >                          
    <td th:text="${item.id}">A Smoke Test</td>
    <td th:text="${item.name}">A Smoke Test</td>
    <td th:text="${item.stok}">A Smoke Test</td>
    <td th:text="${item.sisa}">A Smoke Test</td>
    <td th:text="${item.harga}">A Smoke Test</td>
    <td th:text="${item.supplier.name}">A Smoke Test</td>
</tr>
<tr th:each="item: ${items}" th:if="${item.sisa/item.stok &gt; 33/100 and item.sisa/item.stok &lt; 66/100}" style="background-color:orange" >                                
    <td th:text="${item.id}">A Smoke Test</td>
    <td th:text="${item.name}">A Smoke Test</td>
    <td th:text="${item.stok}">A Smoke Test</td>
    <td th:text="${item.sisa}">A Smoke Test</td>
    <td th:text="${item.harga}">A Smoke Test</td>
    <td th:text="${item.supplier.name}">A Smoke Test</td>
</tr>
<tr th:each="item: ${items}" th:if="${item.sisa/item.stok &gt; 66/100}" style="background-color:yellow">
    <td th:text="${item.id}">A Smoke Test</td>
    <td th:text="${item.name}">A Smoke Test</td>
    <td th:text="${item.stok}">A Smoke Test</td>
    <td th:text="${item.sisa}">A Smoke Test</td>
    <td th:text="${item.harga}">A Smoke Test</td>
    <td th:text="${item.supplier.name}">A Smoke Test</td>
</tr>

我有0.22%,0.77%和0.99%的数据样本,但只有0.99%的数据样本出现。

解决了问题!

而不是使用thymeleaf:if,我使用datatable createdRow,比使用thymeleaf更容易使用:if tag。

1 个答案:

答案 0 :(得分:0)

我认为你这样做太复杂了。

我会编写一个java(或js)方法,根据输入的百分比返回所需的颜色(-class)。

这将使您的模板更具可读性和可维护性。