2013-02-26 85 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