2012-04-23 42 views
0

我正在使用JSF a4j組件。JSF a4j:支持在UI上重新顯示不起作用

<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調用來重新描繪。

在服務器端,數據完全更改但未在用戶界面上修改。

爲了檢驗目的,我所做的是....使用

<h:column> 
    <%=new java.util.Date()%> 
</h:column> 

在我的Ajax調用後沒有被修改的數據表。

任何人都可以向我建議任何事情嗎?

從一些帖子我來知道我必須使用immediate =「true」,我已經完成了。但沒有運氣。

回答

1

我得到了我的答案

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

我刪除h:panelGroup,並把該ID來h:datatable和工程。 :)