2

我正在尝试 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没有idwhile 生成的outputPanelid. 这可能是第一个没有更新的原因吗(cos jQuery选择器找不到组件ID?)

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

4

1 回答 1

4

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

于 2013-02-26T09:11:19.400 回答