Primefaces选择器:如何更新最接近的形式时,排除一些组件?(Primefaces Selec

2019-10-17 22:45发布

我使用的是PrimeFaces commandButton发出一个Ajax请求。
我应该设置update属性,使整个父形式除了一些特定的组件更新(比方说,我已经标记他们styleClass="noupdate" )。
我使用PrimeFaces 3.5,所以我觉得PrimeFaces jQuery选择可能会有帮助。
我想是这样的:

<!-- ...some inputs/labels to be updated here... -->
<p:overlayPanel styleClass="noupdate">
    <!-- ...some inputs/labels to be updated here... -->
    <p:commandButton id="btnDoIt" value="Do it" 
            update="@(this.closest('form') :not(.noupdate))"/>  
</p:overlayPanel>

但它不工作(我得到一个JavaScript语法错误)。
有没有办法让我需要什么?
注意:
1)格式ID是未知的,因为按钮是可以通过任何形式在不同视图中被托管的复合部件的一部分
2)在我的例子的<p:overlayPanel>本身不能被更新,但任何后代部件做。
3)在视图中不止一种形式,我应该只在“当前”的工作之一。

谢谢你提前任何人能帮助我。

Answer 1:

有因为没有这样的事情this在PrimeFaces选择 。 肯定有不一样的jQuery函数$.closest()在PrimeFaces选择可用。 它仅仅是一个纯粹的jQuery兼容CSS选择器 ,而不是一些JavaScript代码。

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

也可以看看:

  • 如何排除子组件的父组件的AJAX更新?


文章来源: Primefaces Selectors: How to exclude some components when updating the closest form?