如何在父组件的ajax更新中排除子组件?

时间:2012-09-27 05:52:16

标签: ajax jsf primefaces

我在代码中使用PrimeFaces <p:ajax>标记。我们如何排除子组件在更新父组件的ajax调用中更新?

1 个答案:

答案 0 :(得分:33)

如果您至少使用PrimeFaces 3.3,则可以使用PrimeFaces Selectors。这样,您就可以在PrimeFaces ajax组件的processupdate属性中使用jQuery CSS selector syntax

例如:

<h:form>
    <h:inputText ... />
    <h:inputText ... />
    <h:inputText ... styleClass="noupdate" />
    <h:inputText ... />
    <h:inputText ... />
    <p:commandButton ... update="@(form :not(.noupdate))"/>
</h:form>

此示例将更新整个表单,但客户端输入class="noupdate"除外。

如果你想要更新某个组件的所有子组件,除了一个组件,将'form'替换为周围组件的id(或类或......)

<h:form id="form">
    <h:panel id="myPanel">
        <h:inputText ... />
        <h:inputText ... />
        <h:inputText ... styleClass="noupdate" />
    </h:panel>
    <h:inputText ... />
    <h:inputText ... />
    <p:commandButton ... update="@(form :not(.noupdate))"/>
</h:form>

<p:commandButton ... update="@(#form\:myPanel :not(.noupdate))"/>

请确保使用完整的客户端ID。

另见: