0

私はこのように構成されたページを持っています:

Data Scroller
Datatable :
 - Header
 -  Data
 -  Footer
Data Scroller

ここで、ページが変更されたときにデータ スクローラーとフッターを再レンダリングする必要があります。これを行うために、dataScrollers の reRender タグの下で変更されるフィールドの ID を返す Bean を呼び出しています。ただし、問題は、データ スクローラーが再レンダリングされているのに、フッターが再レンダリングされていないことです。フッターで呼び出されるメソッドが再度呼び出されることはありませんが、reRender ID のリストが正しいことはわかっています。

次のコードがあります。

  <h:form title="detailView">

...

<rich:dataScroller align="center" for="attendanceList" maxPages="10"
        renderIfSinglePage="false" faststep="4"
        page="#{attendance.scrollerPage}" reRender="#{attendance.getRefreshIds(attendance.SourceSc2)}" id="sc1" ajaxSingle="false"/>
<rich:dataTable width="500" id="attendanceList"
        rows="#{attendance.getDatesAmount()}" columnClasses="attendance"
        value="#{attendance.getAttendanceList(myEmp)}" var="a">
    <f:facet name="header">

...

</f:facet>
<h:column>
    <h:outputText value="#{a.dayOfWeek}" />
</h:column>

...

<h:column>
    <h:outputText value="#{a.totalTime}" />
</h:column>
<f:facet name="footer" id="tot">
    <rich:columnGroup>
    <h:column></h:column><h:column></h:column><h:column></h:column><h:column></h:column><h:column></h:column><h:column></h:column><h:column></h:column><h:column></h:column><h:column></h:column>
<h:column> <b><h:outputText value="Total" /> </b></h:column>
<h:column> <b><h:outputText value="#{attendance.getTotalForPage()}" /> </b></h:column> 
    </rich:columnGroup>
</f:facet>
</rich:dataTable>
 <rich:dataScroller width="400" align="center" for="attendanceList"
maxPages="20" renderIfSinglePage="false" faststep="4"
page="#{attendance.scrollerPage}" id="sc2" reRender="#{attendance.getRefreshIds(attendance.SourceSc2)}" ajaxSingle="false"/>

...

 </h:form>
4

1 に答える 1

1

使用している RF がわからない (3.x?)

<a4j:support event="onpagechange" reRender="#{attendance.getRefreshIds(attendance.SourceSc2)}"/> 

あなたの中<rich:dataScroller>で h:form を a4j:form に変更します

于 2013-03-01T08:30:45.107 に答える