Dataatable не обновляется после actionListener - PullRequest
0 голосов
/ 08 ноября 2019

Я сталкиваюсь с некоторой проблемой обновления моего dataTable, когда я выполняю операцию фильтрации с этим:

<p:panel styleClass="card" header="Filtri">
                        <h:panelGrid columns="4" layout="grid"
                            styleClass="ui-panelgrid-blank form-group">
                            <h:panelGroup styleClass="md-inputfield">
                                <p:inputText id="orderMinFilter" label="N. bolla più basso"
                                    value="#{productionOrdersView.orderNumberStartFilter}">
                                </p:inputText>
                                <p:outputLabel for="orderMinFilter" value="N. bolla più basso" />
                            </h:panelGroup>
                            <h:panelGroup styleClass="md-inputfield">
                                <p:inputText id="orderMaxFilter" label="N. bolla più alto"
                                    value="#{productionOrdersView.orderNumberEndFilter}">

                                </p:inputText>
                                <p:outputLabel for="orderMaxFilter" value="N. bolla più alto" />
                            </h:panelGroup>
                            <p:commandButton value="Cancella filtri" icon="ui-icon-clear"
                                styleClass="red-btn flat"
                                actionListener="#{productionOrdersView.clearFilter()}"
                                style="width:auto;margin-bottom:10px; float:right;"
                                update="dtOrders" />
                            <p:commandButton value="Cerca" icon="ui-icon-search"
                                styleClass="primary-btn flat"
                                actionListener="#{productionOrdersView.filter()}"
                                update="dtOrders"
                                style="width:auto;margin-bottom:10px; float:right;" />
                        </h:panelGrid>
                    </p:panel>

Это мой dataTable:

<p:dataTable id="dtOrders" var="productionOrder"
                        value="#{productionOrdersView.orders}" selectionMode="single"
                        reflow="true" selection="#{productionOrdersView.selected}"
                        filteredValue="#{productionOrdersView.filtered}"
                        widgetVar="ordersTable" rowKey="#{productionOrder.pk}"
                        emptyMessage="Nessun elemento oppure la ricerca è ancora attiva..."
                        paginator="true" rows="20">

И вот этот метод:

public void filter() {
    if (orderNumberStartFilter != null && orderNumberEndFilter != null) {
        this.orders = productionOrderController.findFromToOrderNumber(Integer.valueOf(orderNumberStartFilter),
                Integer.valueOf(orderNumberEndFilter));
        this.filtered = orders;
    }
}

Метод filter () выполняется правильно, и список в bean-компоненте корректен (я ищу 11 элементов и получил его), но dataTable обновляется, но не с этими значениями;Почему? Где я не прав?

1 Ответ

0 голосов
/ 08 ноября 2019

Вы добавляете тег формы для обновления свойства commandButton.

  <p:commandButton value="Cerca" icon="ui-icon-search"
                            styleClass="primary-btn flat"
                            actionListener="#{productionOrdersView.filter()}"
                            update=":formName:dtOrders"
                            style="width:auto;margin-bottom:10px; float:right;" />

.

...