25

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

4

1 回答 1

37

如果您至少使用 PrimeFaces 3.3,那么您可以为此使用PrimeFaces 选择器。这允许您在 PrimeFaces ajax 组件的属性和属性中使用jQuery CSS选择器语法。processupdate

例如:

<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。

也可以看看:

于 2012-09-27T10:41:43.380 回答