0

我正在研究 JSF a4j 组件。

<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 调用后未修改的数据表中。

任何人都可以向我提出任何建议吗?

从一些帖子中我知道我必须使用我已经完成的 immediate="true" 。但没有运气。

4

1 回答 1

1

我得到了答案

<h:dataTable value="#{myBackingBean.anotherBean.sampleList}" 
             var="sampleList"
             styleClass="table" 
             id="dataTable1">
    <h:column>
        ....
    </h:column>
</h:dataTable>

我删除h:panelGroup并将该ID放入h:datatable并且有效。:)

于 2012-05-02T04:53:31.707 回答