여기에 a4j : commandLink가있는 dataTable 예제가 있습니다. 클릭하면, AJAX 요청을 내 bean으로 보내고 dataTable을 reRenders한다.subTable이 a4j : commandLink의 reRender를 중단하는 이유는 무엇입니까?
<rich:dataTable id="dataTable" value="#{carManager.all}" var="item">
<rich:column>
<f:facet name="header">name</f:facet>
<h:outputText value="#{item.name}" />
</rich:column>
<rich:column>
<f:facet name="header">action</f:facet>
<a4j:commandLink reRender="dataTable" value="Delete" action="#{carForm.delete}">
<f:setPropertyActionListener value="#{item.id}" target="#{carForm.id}" />
<f:param name="from" value="list" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
지금까지 잘 작동 exmaple의 obove. 나는 풍부한 추가 할 때 : 테이블에 서브 테이블 (예를 들어 차고에서 차를 그룹화를) 다시 렌더링 지금 ... 부자
<rich:dataTable id="dataTable" value="#{garageManager.all}" var="garage">
<f:facet name="header">
<rich:columnGroup>
<rich:column>name</rich:column>
<rich:column>action</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column colspan="2">
<h:outputText value="#{garage.name}" />
</rich:column>
<rich:subTable value="#{garage.cars}" var="car">
<rich:column><h:ouputText value="#{car.name}" /></rich:column>
<rich:column>
<a4j:commandLink reRender="dataTable" value="Delete" action="#{carForm.delete}">
<f:setPropertyActionListener value="#{item.id}" target="#{carForm.id}" />
<f:param name="from" value="list" />
</a4j:commandLink>
</rich:column>
</rich:column>
</rich:dataTable>
실패 : 데이터 테이블은 이 다시 렌더링되지 않지만 항목이 있기 때문에 삭제됩니다 항목이 수동 페이지 새로 고침 후 표시되지 않습니다.
subTable에서 reRendering을 지원하지 않는 이유는 무엇입니까?
탱크 톰
은 (는) 버그 일 수 있습니다. 파이어 폭스의 자바 스크립트 콘솔 확인 – Bozho
체크. 응답은 두 경우 (w/o subTable 제외)의 테이블이지만 subTable을 사용하면 이전 테이블을 다시 보내는 것처럼 보입니다. 어떤 종류의 캐싱 문제 일 수 있습니다. 어쨌든 Firefox에서는 캐싱이 비활성화되어 있습니다. – Tom