Primefaces选择器不更新panelGroup

时间:2013-02-26 04:06:48

标签: jsf-2 primefaces selector

我正在尝试使用Primefaces选择器,它似乎无法更新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,唯一的区别是<span>生成的panelGroup没有idoutputPanel生成的id有{{1}} 1}}。这可能是第一个没有更新的原因(cos jQuery选择器找不到组件ID?)

如果是这种情况,是否有任何其他组件没有任何ID,使用Primefaces选择器时应该避免使用?

1 个答案:

答案 0 :(得分:4)

使用Primefaces选择器时,jQuery用于在客户端选择组件,并发现其客户端ID。发送AJAX时,发送的参数之一是javax.faces.partial.render,其值是应更新的组件的客户端ID。如果组件没有客户端ID,则无法直接更新,例如,您可以更新父组件。为panelGroup提供id属性,并尝试使用Primefaces选择器更新它。