Можно ли определить форму для отдельной строки в сетке?

Возможно ли как-то иметь форму для отдельной строки в PanelGrid? Если я просто помещу определенные столбцы в тег формы, они (конечно) отображаются в одном столбце моей родительской панели Grid.

Есть ли возможность решить эту проблему? Неважно, использует ли решение тег jsf или тег primefaces

Я использую Mojarra 2.1.26 и Primefaces 4.0

1 ответ

Решение

Использовать частичный процесс / обновление.

если ваше требование состоит в том, чтобы отправлять только данные в определенной строке (и не отправлять другие параметры http, даже если они не обработаны), добавьте частичное использование:

<h:form>
    <p:panelGrid id="grid">
        <p:row id="row1">
            <p:column>
                <p:inputText value="#{someBean.someProperty}"/>
            </p:column>
            <p:column>
                <p:inputText value="#{someBean.anotherProperty}"/>
            </p:column>
        </p:row>
        <!-- other rows -->
    </p:panelGrid>

    <p:commandButton action="#{someBean.someAction}" process="@this row1" 
        update="grid" partialSubmit="true" value="submit"/>
</h:form>

это ведет себя так же (почти), как наличие формы только для row1.

обратите внимание, что вы должны обновить grid, потому что p:panelgrid визуализирует свои дочерние компоненты самостоятельно.

однако ваше желаемое поведение (точно) также невозможно при использовании простого HTML.

Другие вопросы по тегам