1
這是一個最小的rich:dataTable示例,裏面有一個a4j:commandLink。點擊後,它向我的bean發送一個AJAX請求,並重新發送dataTable。爲什麼子表打破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>
的〔實施例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在這裏中斷reRender的支持?
坦克湯姆
可能是一個錯誤。檢查在Firefox控制檯控制檯 – Bozho 2010-04-22 13:00:04
檢查。響應是兩種情況下的表(w /和w/o子表),但有了子表後,它似乎再次發送舊錶。可能是某種緩存問題。無論如何緩存在Firefox中被禁用。 – Tom 2010-04-22 13:35:55