Хотите показать таблицу данных, заполненную данными после нажатия кнопки

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

<p:commandButton value="Go" styleClass="apply_button" actionListener="#{searchBean.getUserList}">
    <f:attribute name="trigram" value="#{searchBean.trigram}"/>
    <f:attribute name="firstName" value="#{searchBean.firstName}"/>
    <f:attribute name="lastName" value="#{searchBean.lastName}"/>
</p:commandButton>

здесь метод getUserList() возвращает список данных, которые должны быть заполнены в таблице данных, и он работает.

<p:dataTable value="#{searchBean.listUser}" var="user">
    <p:column headerText="Trigram">
        <h:outputText value="#{searchBean.trigram}"/>
    </p:column>
</p:dataTable>

Он отображается в таблице данных после нажатия кнопки, но таблица данных появляется до нажатия кнопки с пустыми полями. Как я могу изменить свои коды, чтобы отображать таблицу данных после нажатия моей кнопки? Коды в пределах <h:form> Тег.

И управляемый боб searchBean в @ViewScoped,

1 ответ

Решение

Вы можете инициализировать простой метод получения / установки:

private boolean visible = false; // getter/setter

public void getUserList(ActionEvent event)
{
    setVisible(true);

    // Your code
}

И измените ваше мнение так:

<p:commandButton value="Go" styleClass="apply_button" actionListener="#{searchBean.getUserList}" update="table-wrapper">
    <f:attribute name="trigram" value="#{searchBean.trigram}"/>
    <f:attribute name="firstName" value="#{searchBean.firstName}"/>
    <f:attribute name="lastName" value="#{searchBean.lastName}"/>
</p:commandButton>

<h:panelGroup id="table-wrapper">
    <p:dataTable rendered="#{searchBean.visible}" value="#{searchBean.listUser}" var="user">
        <p:column headerText="Trigram">
            <h:outputText value="#{searchBean.trigram}"/>
        </p:column>
    </p:dataTable>
</h:panelGroup>

Обратите внимание update атрибут на кнопку, h:panelGroup обертка и rendered атрибут на столе.

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