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

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

如果您至less使用PrimeFaces 3.3,那么您可以使用PrimeFacesselect器来实现此目的。 这允许您在processupdate PrimeFaces ajax组件的属性时使用jQuery CSSselect器语法 。

例如:

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

这个例子会更新整个表格,除了在客户端有class="noupdate"input。

如果要更新某个组件的所有子组件(除了一个子组件),请用周围组件(或类或…)的IDreplace“form”

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