Проблема с повторным рендерингом в разбивке на страницы richfaces - PullRequest
0 голосов
/ 01 марта 2019

Существует раскрывающийся список для состояния, в соответствии с которым должны изменяться записи в datatable.У меня есть другой выпадающий список страниц для выбора страниц.При изменении выпадающего списка нумерации выполняется ajax-вызов, который переходит к компоненту, и результат выбирается, а данные обновляются. Отображаются записи на странице 10.

Проблема в том, что когда я выбираю состояние с 30 записями, а затем выбираю 2-ю страницу из выпадающего списка, все работает нормально, но если я выбираю другое состояние, содержащее только 7 записей, а затем выбираю 2-ю страницу из числа страницзатем выпадающий список становится пустым, и после этого ajax также перестает работать.

Вот код:

<div align="left" style="width:99%">
<!-- PAGING CODE - START -->
  <rich:datascroller align="top" fastControls="hide" for="data" 
  maxPages="15" 
  page="#{courtSessionBean.pageNo}" reRender="sc2" id="sc1" 
  actionListener="#{courtSessionBean.scrollEvent}" 
  rendered="#{courtSessionBean.totalPages > 1}">

    <%@include file="/jsp/include/NavigationControls.jsp" %>

    <f:facet name="pages">
        <h:panelGroup>
            <x:dataList itemStyleClass="odd" style="odd" var="page" 
             value="#{courtSessionBean.pageList}">
                <h:commandLink action="#{courtSessionBean.search}" 
                  rendered="#{pagingView.currentPageNo!=page}">
                    <h:outputText value="#{page}"></h:outputText>
                        <f:param name="PAGE_NO" value="#{page}"></f:param>
                        <f:param name="orderBy" 
                         value="#{courtSessionBean.orderBy}"></f:param>
                        <f:param name="orderType" 
                         value="#{courtSessionBean.orderType}"></f:param>
                </h:commandLink>
                <h:outputText value="#{page}" rendered="#{pagingView.currentPageNo==page}"></h:outputText>
                <h:outputText value=" " />
            </x:dataList>
            <h:outputText value=" Page " />

            <h:selectOneMenu value="#{courtSessionBean.pageNo}">
                <a4j:support reRender="sc1,sc2,data" event="onchange" actionListener="#{courtSessionBean.search}"></a4j:support>
                <f:selectItems value="#{courtSessionBean.pages}" />
            </h:selectOneMenu>

            <h:outputText value=" / #{courtSessionBean.totalPages}" />
            <h:outputText value=" " />

        </h:panelGroup>
    </f:facet>

</rich:datascroller>
<!-- PAGING CODE - END -->
</div>

<div style="width:99%">
<x:dataTable width="100%" rowClasses="even,odd" styleClass="table" first="0" 
rows="10" cellpadding="0" cellspacing="0" id="data" value="# 
{courtSessionBean.tableModel}" binding="#{courtSessionBean.table}" 
var="sessionheader">            
    <h:column rendered="#{courtSessionBean.orderType=='ASC' && 
courtSessionBean.orderBy=='CSH.AGENCYNAME'}" >
        <f:facet name="header">
            <h:commandLink action="#{courtSessionBean.search}">
                <h:graphicImage url="# 
{facesContext.externalContext.requestContextPath}/../images/sort_asc.gif" />
                <f:param name="orderType" value="DESC"></f:param>
                <f:param name="orderBy" value="CSH.AGENCYNAME"></f:param>
                <f:param name="PAGE_NO" value="#{courtSessionBean.pageNo}"> 
</f:param>
                <h:outputText value="#{bundle.courtsession_agency}" 
escape="false"/>
            </h:commandLink>
        </f:facet>
        <h:outputText value="#{sessionheader.agencyName}" />
    </h:column>             

</x:dataTable>              
</div>

<div style="width:99%">
    <x:dataTable width="100%" rowClasses="even,odd" styleClass="table" first="0" rows="10" cellpadding="0" cellspacing="0" id="data" value="#{courtSessionBean.tableModel}" binding="#{courtSessionBean.table}" var="sessionheader">            
        <h:column rendered="#{courtSessionBean.orderType=='ASC' && courtSessionBean.orderBy=='CSH.AGENCYNAME'}" >
            <f:facet name="header">
                <h:commandLink action="#{courtSessionBean.search}">
                    <h:graphicImage url="#{facesContext.externalContext.requestContextPath}/../images/sort_asc.gif" />
                    <f:param name="orderType" value="DESC"></f:param>
                    <f:param name="orderBy" value="CSH.AGENCYNAME"></f:param>
                    <f:param name="PAGE_NO" value="#{courtSessionBean.pageNo}"></f:param>
                    <h:outputText value="#{bundle.courtsession_agency}" escape="false"/>
                </h:commandLink>
            </f:facet>
            <h:outputText value="#{sessionheader.agencyName}" />
        </h:column>             

    </x:dataTable>              
</div>

<!-- PAGING CODE - START -->
<div align="left" style="width:99%"> 
<rich:datascroller align="top" for="data" maxPages="15" page="#{courtSessionBean.pageNo}" reRender="sc1" fastControls="hide" 
    id="sc2" actionListener="#{courtSessionBean.scrollEvent}" rendered="#{courtSessionBean.totalPages > 1}">
<%@include file="/jsp/include/NavigationControls.jsp" %>
    <f:facet name="pages">
        <h:panelGroup>
            <x:dataList itemStyleClass="odd" style="odd" var="page" value="#{courtSessionBean.pageList}">
                <h:commandLink action="#{courtSessionBean.search}" rendered="#{pagingView.currentPageNo!=page}">
                    <h:outputText value="#{page}"></h:outputText>
                    <f:param name="PAGE_NO" value="#{page}"></f:param>
                    <f:param name="orderBy" value="#{courtSessionBean.orderBy}"></f:param>
                    <f:param name="orderType" value="#{courtSessionBean.orderType}"></f:param>
                </h:commandLink>
                <h:outputText value="#{page}" rendered="#{pagingView.currentPageNo==page}"></h:outputText>
                <h:outputText value=" " />
            </x:dataList>                                               
        </h:panelGroup>
    </f:facet>
</rich:datascroller>
<!-- PAGING CODE - END -->  
<f:subview id="noRecordFound" rendered="#{courtSessionBean.totalRows==0}">
    <div class="odd" style="width:100%" align="center">                 
        <b><h:outputText value="#{bundle.note_noRecordsFound}" /></b>
    </div>
</f:subview>
</div>
...