1

我正在使用 PrimeFacescommandButton发出 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)视图中有不止一种形式,我应该只处理“当前”的一种。

提前感谢任何可以帮助我的人。

4

1 回答 1

3

PrimeFaces 选择器this中没有这样的东西。PrimeFaces 选择器中绝对没有 jQuery 函数可用。它只是一个纯jQuery 兼容的 CSS 选择器,而不是一些 JavaScript 代码。$.closest()

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

也可以看看:

于 2013-04-03T15:03:15.103 回答