итерации тимелист внутри тд и специальные выборки значений - PullRequest
0 голосов
/ 09 мая 2019

Я использую тимилиф в проекте весенней загрузки. У меня есть список предметов, и я хочу разместить их в таблице.

Этот список должен быть разделен на 4 колонки. Элементы имеют и идентификатор, который относится к конкретному столбцу.

Итак, у меня есть таблица, и в теле я хочу установить разные "tds" в одном "tr". В каждом «td» я хочу выполнить итерации по списку, найти элемент с правильным идентификатором и установить конкретное количество на входе.

Список составлен из базы данных, поэтому у меня есть только те элементы, которые имеют значение, поэтому, если что-то будет нулевым, этот элемент не будет существовать.

Проблема возникает, когда я хочу поставить ноль, когда у меня нет предмета.

Я хотел покончить только с тимилефом и не добавлять функцию javascript для установки значений позже.

Напишите сейчас, я использую этот код:

                <tbody>
                    <tr>
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==1}"><input type="number" class="bReal" th:name="test2" th:value="${extraWork.qty}"></td>    
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==2}"><input type="number" class="bReal" th:name="test3" th:value="${extraWork.qty}"></td>    
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==3}"><input type="number" class="bReal" th:name="test4" th:value="${extraWork.qty}"></td>    
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==4}"><input type="number" class="bReal" th:name="test5" th:value="${extraWork.qty}"></td>    
                    </tr>
                </tbody>

Но это не создает ввод, если элемент с конкретным идентификатором не существует.

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Вы можете сделать это с помощью выбора коллекции и затем проверить наличие нулевого объекта. Это должно работать для вас:

<tbody>
    <tr>
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==1]}" class="BRtd"><input type="number" class="bReal" th:name="test2" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==2]}" class="BRtd"><input type="number" class="bReal" th:name="test3" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==3]}" class="BRtd"><input type="number" class="bReal" th:name="test4" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==4]}" class="BRtd"><input type="number" class="bReal" th:name="test5" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
    </tr>
</tbody>

Вы могли бы упростить это еще больше, если хотите (хотя сейчас это становится немного сложнее). Как то так:

<tbody>
    <tr>
        <td th:each="i: ${#numbers.sequence(1,4)}" th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==__${i}__]}" class="BRtd"><input type="number" class="bReal" th:name="|test${i+1}|" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>
    </tr>
</tbody>
0 голосов
/ 09 мая 2019

Привет, измени свой подход,

   <table th:if="${ExtraWorkList.length > 0}">

                .................

                <tbody>
                    <tr th:each="${index: #numbers.sequence(0, ExtraWorkList.length, 4)}">
                        <td class="BRtd"><input type="number" class="bReal" th:name="test2" th:value="${ExtraWorkList[index].qty}"></td>    
                        <td class="BRtd" th:if="${ExtraWorkList[index + 1] != null}"><input type="number" class="bReal" th:name="test3" th:value="${ExtraWorkList[index + 1].qty}"></td>    
                        <td class="BRtd" th:if="${ExtraWorkList[index + 2] != null}"><input type="number" class="bReal" th:name="test4" th:value="${ExtraWorkList[index + 2].qty}"></td>    
                        <td class="BRtd" th:if="${ExtraWorkList[index + 3] != null}"><input type="number" class="bReal" th:name="test5" th:value="${ExtraWorkList[index + 3].qty}"></td>    
                    </tr>
                </tbody>

выполнит работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...