我想制作一些有条件的桌子。如果该项目低于库存的0.33%,则行颜色必须设置为红色。如果项目大于0.33%且低于0.66%,则行颜色必须设置为橙色,如果项目大于0.66%,则行颜色必须设置为黄色。
我正在使用th:每个标签TR中的每一个,并给出:if,但只显示一行,库存大于0.66%
<tr th:each="item: ${items}" th:if="${item.sisa/item.stok < 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 > 33/100 and item.sisa/item.stok < 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 > 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。
答案 0 :(得分:0)
我认为你这样做太复杂了。
我会编写一个java(或js)方法,根据输入的百分比返回所需的颜色(-class)。
这将使您的模板更具可读性和可维护性。