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

Pra*_*ali 21 ajax jsf primefaces

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

Bal*_*usC 34

如果您至少使用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>
Run Code Online (Sandbox Code Playgroud)

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

如果要更新除某个组件之外的某个组件的所有子组件,请将"格式"替换为周围组件的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))"/>
Run Code Online (Sandbox Code Playgroud)

只需确保使用完整的客户端ID.

也可以看看:

  • @BalusC我正在使用v3.5.感谢您提供有关如何提问的快速教程,这真的很有帮助. (2认同)
  • 如何只用JSF <p:ajax>做同样的事情? (2认同)