Получить элемент от нажатия кнопки в таблице - PullRequest
0 голосов
/ 12 февраля 2019

У меня проблема с получением элемента строки из таблицы в JSF.Моя цель - создать таблицу с элементами, взятыми из базы данных (сущность заказа), которая имеет некоторые атрибуты (имя, адрес, описание и т. Д.).Все это с помощью кнопки на всех отдельных рядах.

Задача кнопки состоит в том, чтобы удалить конкретный заказ из базы данных onClick, поэтому мне нужно получить id заказа в определенной строке.

Iнашел где-то на пути, как это сделать, используя setPropertyActionListener().Проблема в том, что он работает только для первого элемента таблицы.Если я нажму на кнопку, назначенную другой строке, но не первой, selectedId заказа будет пустым (не назначено).

Я был бы очень признателен за любую помощь.

<h:form>
    <h:dataTable id="orders" value="#{orderController.otherOrders}" var="order" border="2"
                 cellspacing="1" cellpadding="1">
        <h:column>
            <c:facet name="header">Name</c:facet>
            #{order.name}
        </h:column>
        <h:column>
            <c:facet name="header">Address</c:facet>
            #{order.address}
        </h:column>
        <h:column>
            <c:facet name="header">Description</c:facet>
            #{order.description}
        </h:column>
        <h:column>
            <c:facet name="header"> </c:facet>
            <h:form>
                <h:commandButton action="#{orderController.selectOrder}" value="delete">
                    <f:setPropertyActionListener target="#{orderController.selectedOrderId}" value="#{order.id}" />
                </h:commandButton>
            </h:form>
        </h:column>

    </h:dataTable>
</h:form>

В orderController у меня есть функция selectOrder (), которая принимает фактический selectedOrderId и удаляет ордер.

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