JSF + primefaces spinner ajax调用其他提交

问题描述 投票:0回答:1

我在spinner中使用ajax来调用backing bean中的一些动作。

这是我的代码:

<b:panel>
    <p:dataTable id="orderDataTable" var="order" value="#{orderViewBean.orders}"
                 widgetVar="ordersDataTable" tableStyle="table-layout: auto;">
        <p:column headerText="Created" filterBy="#{order.creationDate}" filterStyle="display: none"
                  filterMatchMode="contains">
            <h:outputText value="#{order.creationDate}"/>
        </p:column>
        <p:column headerText="Created By" filterBy="#{order.createdBy}" filterStyle="display: none"
                  filterMatchMode="contains">
            <h:outputText value="#{order.createdBy}"/>
        </p:column>
    </p:dataTable>

    <b:panelGrid colSpans="4,4,4">
        <b:commandButton action="#{orderViewBean.previousPage}" value="Previous"
                         look="primary" process="@this:uploadOrderDataPanel" styleClass="pull-left"
                         disabled="#{!orderViewBean.page.hasPrevious()}" type="submit">
            <p:ajax immediate="true" update=":companyOrdersForm"/>
        </b:commandButton>
        <b:row>
            <div class="text-center">
                <h:outputLabel value="Page"/>
                <p:spinner value="#{orderViewBean.currentPage}" size="3"
                           min="#{orderViewBean.page.totalPages > 0 ? 1 : 0}"
                           max="#{orderViewBean.page.totalPages}">
                    <p:ajax listener="#{orderViewBean.changePageAjax}"
                            update="@form" process="@this" immediate="true"/>
                </p:spinner>
                <h:outputLabel value="Of"/>
                <h:outputText value="#{orderViewBean.page.totalPages}"/>
            </div>
        </b:row>
        <b:commandButton action="#{orderViewBean.nextPage}" value="Next"
                         look="primary" process="@this:uploadOrderDataPanel" styleClass="pull-right"
                         disabled="#{!orderViewBean.page.hasNext()}" type="submit">
            <p:ajax immediate="true" update=":companyOrdersForm"/>
        </b:commandButton>
    </b:panelGrid>
</b:panel>

当我将一些数字放入微调器并按Enter键时,则调用changePageAjax(这没关系)以及orderViewBean.previousPage(这不是正常的)。我可以避免调用其他操作吗?

ajax jsf primefaces
1个回答
0
投票

在相关的ajax标签上添加partialSubmit="true"属性。从PF文档中:

PartialSubmit通过仅将部分处理的组件添加到ajax请求帖子来减少网络流量。对于具有许多输入组件的大页面,partialSubmit非常有用,因为它会导致更轻量级的请求。比较记录器显示的后期数据的差异。

也可以看看:

© www.soinside.com 2019 - 2024. All rights reserved.