在Ajax请求上重置Primefaces Pagination Selected Page

c12*_*c12 3 primefaces

我不确定这是一个bug还是只是没有实现的东西,但是我无法更新dataGrids页面属性以将分页重置为第1页.我已将它绑定到我的bean中的表达式并更新它通过ajax更新,但单击我的按钮时它不会更新.分页器将保留在选定页面上,不会通过ajax请求重置.我正在尝试重置它.dreamSearchBean的setCurrentPage会被调用并被传递1,但它会保留在上次选择的任何页面上

<h:form id="dreamWebSearchFrm">
<p:commandButton styleClass="form-btn1" value="#{bundle['dreamSearch.search.button.TEXT']}" onclick="trackingDreamSearch()"
        actionListener="#{dreamSearch.search}" update=":dreamWebSearchFrm:resultsPnl">
        <f:setPropertyActionListener value="1" target="#{dreamSearchBean.currentPage}"/>    
</p:commandButton>
<p:panel id="resultsPnl">
                    <div class="data-grid-wrap">
                    <h:outputFormat escape="false" value="#{bundle['dreamSearch.imageResults.TEXT']}" rendered="#{dreamSearchBean.shouldRender}" >
                        <f:param value="#{dreamSearchBean.searchText}" />
                    </h:outputFormat>
                        <p:dataGrid var="dream" value="#{dreamSearchBean.dreams}" rendered="#{dreamSearchBean.shouldRender}" page="#{dreamSearchBean.currentPage}" pageLinks="3"  columns="4" rows="4" paginator="true" effect="true"
                            styleClass="ui-header-visibility"
                            paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
                            paginatorPosition="bottom">
                            <p:column>
                                <h:panelGrid columns="1">
                                    <p:commandLink onclick="webSearchDlg.hide();dreamEditDlg.show();" update=":dreamEditFrm:display"> 
                                        <f:setPropertyActionListener value="#{dream}" target="#{dreamModifyBean.selectedDream}"/>
                                        <p:graphicImage value="#{dream.imageThumb}" width="125" height="100"></p:graphicImage>
                                    </p:commandLink>
                                </h:panelGrid>
                            </p:column>
                        </p:dataGrid>
                    </div>
                </p:panel>
</h:form>
Run Code Online (Sandbox Code Playgroud)

小智 5

使用Primefaces 3.2我在查询时遇到类似的问题,当我得到例如五个页面时,我会进行一个新的查询,页面计数将是10,但它将默认为上一个查询并保留第5页.重置为第一页的解决方案如下:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("documentSearch:searchFormCase:documentSearchTable");
dataTable.setFirst(0);
Run Code Online (Sandbox Code Playgroud)

即使我正在使用:

import org.primefaces.component.datatable.DataTable;
Run Code Online (Sandbox Code Playgroud)

它应该适用于以下组件:

import org.primefaces.component.datagrid.DataGrid;
Run Code Online (Sandbox Code Playgroud)