【问题标题】:Primefaces selectors not updating a panelGroupPrimefaces 选择器不更新 panelGroup
【发布时间】:2013-02-26 04:06:48
【问题描述】:

我正在尝试 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 更改为&lt;p:outputPanel&gt;,那么它工作正常。

观察生成的HTML,唯一的区别是panelGroup生成的&lt;span&gt;没有id,而outputPanel生成的id。这可能是第一个没有更新的原因吗(cos jQuery选择器找不到组件ID?)

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

【问题讨论】:

    标签: jsf-2 primefaces selector


    【解决方案1】:

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

    【讨论】:

    • 谢谢!我为panelGroup 添加了 id 属性,它正在工作。但我想我可能会留在p:outputPanel,它让我不必为 id 想出有意义的名称而头疼。再次感谢您的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多