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 に答える