我在微调器中使用ajax来调用辅助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>
当我在spinner中输入一些数字然后按Enter键时,会调用changePageAjax(这没关系),还有orderViewBean.previousPage(这不行)。我可以避免调用其他操作吗?
答案 0 :(得分:0)
在相关的ajax标签上添加partialSubmit="true"
属性。来自PF文档:
PartialSubmit通过仅将部分处理的组件添加到ajax请求帖子来减少网络流量。对于具有许多输入组件的大页面,partialSubmit非常有用,因为它会导致更轻量级的请求。比较记录器显示的后期数据的差异。
另见: