2013-08-20 2 views
0

a4j:repeat 안에 rich:dataTable을 사용하고 있습니다. dataTable Scroller가 이전 dataTable 스크롤러 인덱스 값의 인덱스를 참조 할 때마다. 그래서 현재 dataTable 값을 가지고 있지만 빈 테이블을 표시합니다. 때문에의rich : dataScroller 인덱스는 이전 데이터 테이블을 참조합니다. a4j 내부의 스크롤러 인덱스 : repeat

,

이전 데이터 테이블 목록 크기가 200 이전 데이터 테이블 스크롤 지수는 7

현재 DataTable의 목록 크기가 난 당신이를 변경해야 할 생각 5.

<a4j:repeat value="#{Bean.outerTOList}" var="sampleValue"> 

     <rich:dataTable id="dataTable" 
         var="innerTo" 
         rows="5" 
         value="#{sampleValue.sampleInnerTOList}" > 
      <f:facet name="header"> 
       <rich:column> 
        <h:outputText value="Header"/> 
       </rich:column> 
      </f:facet> 


      <rich:column> 
       <h:outputText value="#{innerTo.name}"/> 
      </rich:column> 


      <f:facet name="footer"> 
       <rich:datascroller id="dataTableScrollerId" 
            ajaxSingle="false" maxPages="3"                  
            page="1"> 
       </rich:datascroller> 
      </f:facet> 

     </rich:dataTable> 
    </a4j:repeat> 
+0

Managed Bean 코드를 게시 할 수 있습니까? – Crferreira

+0

@Crferreira 정상적인 TO. resultTOList를 직접 사용합니다. 귀하의 회신에 감사드립니다. – newuser

답변

1

<ui:repeat>을 (JSTL) <c:forEach> (http://www.crazysquirrel.com/computing/java/jsp/jstl-forEach.jspx 참조)에 추가하면 수명주기가 다르기 때문에 ui : repeat를 사용한 구현은이 시나리오에서 작동하지 않습니다.

이렇게하면 모든 테이블 구성 요소의 이름을 동일하게 지정할 수 없기 때문에 일종의 "식별기"가 필요합니다. id = "datatable0", ... id = "datatable1"등과 같은 것을 사용해야합니다. 이렇게하려면 c : forEach의 varStatus="status" 속성을 사용할 수 있습니다. 그것은 카운터로 사용할 수있는 속성을 가지고 있습니다 : #{status.index}

+0

. 그것은 잘 작동합니다. – newuser

관련 문제