2013-02-26 83 views
2

我試圖Primefaces選擇器,它似乎無法更新panelGroupPrimefaces選擇器不更新panelGroup

<h:panelGroup layout="block" styleClass="updateMe"> 
    <h:outputText value="#{bean.value}"/> 
</h:panelGroup> 
<h:form> 
    <h:inputText value="#{bean.value}"/> 
    <h:commandButton value="submit"> 
     <p:ajax process="@form" update="@(.updateMe)" oncomplete="alert(1)"/> 
    </h:commandButton> 
</h:form> 

在這種情況下,panelGroup永遠不會被更新。但如果我將panelGroup更改爲<p:outputPanel>,那麼它工作正常。

觀察生成的HTML,唯一的區別是,通過panelGroup產生的<span>不具有id同時通過outputPanel產生的一個具有id。難道這是爲什麼第一個是沒有得到更新的原因(COS jQuery選擇找不到組件id?)

如果是這樣的話,有沒有沒有任何標識和應該是任何其他組件在使用Primefaces選擇器時避免?

回答

4

使用Primefaces選擇器時使用jQuery來選擇客戶端的組件,並發現它們的客戶端ID。當發送AJAX時,發送的參數之一是javax.faces.partial.render,其值是應更新的組件的客戶端ID。如果組件沒有客戶端ID,則無法直接更新,您可以更新父組件,例如。爲panelGroup提供id屬性並嘗試使用Primefaces選擇器更新它。

+0

謝謝!我爲'panelGroup'添加了id屬性,並且它正在工作。但我認爲我可能會留在'p:outputPanel'中,這讓我很頭痛,想出有意義的ID名稱。 再次感謝您的解釋! – 2013-02-26 09:52:12