【问题标题】:Multiple values for the update attribute on p:commandButtonp:commandButton 上更新属性的多个值
【发布时间】:2016-05-20 22:09:13
【问题描述】:

我是 Primefaces 的新手,我想知道我是否可以使用两个值来更新 primefaces commandButton 组件的属性:

我的代码

<p:messages id="messages" ...../><!-- not always updated -->
<h:form>
    ...
    <p:commandButton ....action="search" update="@all :messages"/>
    ..
</h:form>
<h:form>
    <p:panel header="Number of element in the the table:#{bean.number}">
        <!--not always updated -->
        <p:datatable>
            <!-- always updated -->
        </p:datatable>
    </p:panel>
</h:form>

当我这样做时,面板组件的标题没有更新。

当我只输入update="@all" 时,即使使用autoUpdate="true",消息组件(p:messages)也不会更新

你能帮帮我吗!

【问题讨论】:

  • 简短回答:是的,您可以将两个值放入更新属性中,就像您所做的那样。你到底想发生什么?如果您希望页面上的所有内容都得到更新,为什么不进行正常的非 ajax 请求?
  • @user1983983,当我输入 ajax="false" 时,整个页面都会更新,客户不希望这样。我想要对 p:messages 和 p:panel 进行部分更新。我不明白为什么当我把 @all 除了 p:messages 和当我将 :messages 添加到更新属性中时,它工作正常,面板标题不更新:(!
  • action值在一个transition中和spring webflow一起使用,没有问题..
  • 好吧,那么祝你好运……我仍然建议学习一些 jsf 基础知识和调试技巧(你真的知道 @all 做什么吗?并了解为什么消息不能“生存”页面转换等……

标签: jsf primefaces spring-webflow


【解决方案1】:

不要使用@all,这是不好的做法 (http://forum.primefaces.org/viewtopic.php?f=3&t=6956#p36841)。

如果您想更新特定组件或表单,您可以使用 jQuery 选择器:PFS (PrimeFaces Selectors) - Showcase

因此,您可以在第二个表单上放置一个 id 并在更新属性中指定它。

【讨论】:

  • 感谢您的回答,实际上我尝试将 p:panel 组件 id 指定为更新属性,但它刷新了所有页面并且客户不想要这个。我尝试使用@(.ui-message),没有任何变化。现在,消息已更新,面板也已更新,但刷新了整页...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多