0

我有一个这样的

<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。它是一个旧程序。

谢谢

4

2 回答 2

0

我不确定这是否适用于 primefaces 2.2,但在版本 3+ 中,您可以指定更新属性。

你的 commandButton 看起来像这样:

<h:commandButton value="Apply Filters" action="#{exporterReview.applyFilterAction}" update="@form">
于 2012-08-01T13:21:56.973 回答
0

我做的 :)。其实我做了一个解决方法。我做了什么,我在我的过滤器按钮上使用了 onClick 事件。喜欢

<h:commandButton id="filterButton"
                 value="Apply Filters"
                 style=""
                 action="#{exporterReview.applyFilterAction}"
                 onclick="filterButtonClick(event)" />

现在,当单击按钮时,首先我的客户端代码将运行。所以我得到所有的值,然后使用ajax调用servlet,并将结果保存在会话对象中。之后,我的服务器端代码将运行,并调用我的操作方法,其中我简单地返回同一页面的 url。

public String applyFilterAction() {

    return "Exporter_Review?faces-redirect=true";

} //end of applyFilterAction()

现在,当页面调用时,我只需检查会话中的结果。如果存在会话对象,则只需从该对象获取值并显示结果。当我离开页面时,我只是将 null 放在针对对象的会话中,现在使用默认值。现在一切正常:)

于 2012-08-06T07:08:00.073 回答