我有一个像这样的
<h:form id="logForm" prependId="false">
<div class="leftcol">
....
<h:commandButton value="Apply Filters"
action="#{exporterReview.applyFilterAction}">
</h:commandButton><br></br><br></br>
....
</div>
<div class="rightcol1" >
<p:dataTable var="exporter"
value="#{exporterReview.exporters}"
paginator="true" rows="5"
height="400" paginatorPosition="top"
emptyMessage="#{exporterReview.noExporterFound}">
<p:column>
<div style="....">
<h:graphicImage value="#{exporter.imgPath}" />
</div>
<div style="...">
<h:commandButton value="Update"
action="#{exporterReview.updateExporter}"
rendered="#{login.updateState}"
style="... ">
<f:param name="exporterid"
value="#{exporter.exporterId}" />
</h:commandButton>
</div>
<div class="arrowbuttons">
<span class="arrow"></span>
</div>
<p:spacer height="10" width="20"/>
<h:commandButton value="#{exporter.organizationName}"
action="#{exporterReview.viewExporter}"
style="...">
<f:param name="exporterid" value="#{exporter.exporterId}" />
<f:param name="disableLink" value="#{exporter.disableLink}" />
</h:commandButton>
<div style='padding-top:10px'>
<h:outputLabel value="City: " style="color: #1c6ace;"/>
<h:panelGroup rendered="#{not exporter.disableLink}">
<h:commandLink value="#{exporter.cityName}"
style="text-decoration: underline"
disabled="#{exporter.disableLink}"
onclick="openCityPopup(#{exporter.cityId});" >
</h:commandLink>
</h:panelGroup>
<h:panelGroup rendered="#{exporter.disableLink}">
<h:outputText value="#{exporter.cityName}"></h:outputText>
</h:panelGroup>
</div>
<div style='padding-top:3px'>
<h:outputLabel value="Email Address: " style="color: #1c6ace;"/>
<a href="mailto:#{exporter.emailAddress}">
<h:outputText value="#{exporter.emailAddress}"
style="..">
</h:outputText>
</a>
</div>
<div style='padding-top:3px'>
<h:outputText value="#{exporter.categoryDesc}"
escape="false" />
</div>
<div class="horizontalline"></div>
</p:column>
</p:dataTable>
</div>
</h:form>
这是过滤方法
public void applyFilterAction() {
....
//Setting whereParam so that whenever user navigate from page And return back
// the grid is populated with the previous search criteria
session.setAttribute("settingWhereParam", whereParam);
getExporterGrid();
} //end of applyFilterAction
private void getExporterGrid() {
....
exporters.add(new Exporter(Datatable values));
} //end of getExporterGrid
问题是,当我在第一页并进行搜索时,每件事情都可以。这是第一张照片。
然后,如果我应用搜索,那么它就变成了
但是,如果我做分页,请转到第4页然后应用搜索,然后没有结果显示
但是没有显示
为什么会这样?我做错了什么?我正在使用Prime面孔2.2。这是一个旧计划。
谢谢
答案 0 :(得分:0)
我不确定这是否适用于primefaces 2.2,但在版本3+中,您可以指定更新属性。
你的commandButton看起来像这样:
<h:commandButton value="Apply Filters" action="#{exporterReview.applyFilterAction}" update="@form">
答案 1 :(得分:0)
我做到了:)。其实我做了一个解决方法。我做了什么,我在我的过滤器Button上使用onClick事件。喜欢
<h:commandButton id="filterButton"
value="Apply Filters"
style=""
action="#{exporterReview.applyFilterAction}"
onclick="filterButtonClick(event)" />
现在,当单击按钮时,首先运行我的客户端代码。所以我获取所有值,然后使用ajax调用servlet,并将结果保存在session对象中。之后我的服务器端代码将运行,并调用我的action方法,其中我简单地返回同一页面的url。
public String applyFilterAction() {
return "Exporter_Review?faces-redirect=true";
} //end of applyFilterAction()
现在,当页面调用时,我只需在会话中检查结果。如果会话对象存在,则只需从该对象获取值并显示结果。当我离开页面时,我只是在对象的会话中放置null,现在使用默认值。现在一切正常:)