我正在开发JSF a4j componenet。
<h:selectOneMenu id="sampleSelect" value="#{myBackingBean.id}"
immediate="true">
<f:selectItems value="#{myBackingBean.generateSampleList}"/>
<h:outputLabel value="Sample List : " for="sampleSelect"></h:outputLabel>
<a4j:support ajaxSingle="true"
event="onchange"
reRender="dataTable1, dataTable2, dataTable3"
oncomplete="setColorbox();"
action = "#{myBackingBean.setSampleListForDatatables}">
</a4j:support>
</h:selectOneMenu>
和我的数据表为
<h:panelGroup id="dataTable1">
<h:dataTable value="#{myBackingBean.anotherBean.sampleList}"
var="sampleList"
styleClass="table">
<h:column>
....
</h:column>
</h:dataTable>
</h:panelGroup>
我有多个相同的数据表,这些数据表在此ajax调用中已更改,应在ajax调用完成后重新呈现。
在服务器端,数据已完美更改,但未在UI上修改。
为了检查目的,我做的是...。
<h:column>
<%=new java.util.Date()%>
</h:column>
在我的ajax调用后未修改的数据表中。
有人可以向我提出任何建议吗?
从某些帖子中,我知道我必须使用已经完成的Instant =“ true”。但是没有运气。
最佳答案
我得到了答案
<h:dataTable value="#{myBackingBean.anotherBean.sampleList}"
var="sampleList"
styleClass="table"
id="dataTable1">
<h:column>
....
</h:column>
</h:dataTable>
我删除了
h:panelGroup
并将该ID放入h:datatable
,它可以正常工作。 :)