【问题标题】:selectManyCheckbox ajax listener not called未调用 selectManyCheckbox ajax 侦听器
【发布时间】:2017-09-24 01:22:07
【问题描述】:

我有以下代码:

<p:selectManyCheckbox id="contactrole"
                      value="#{contactDetail.contactRoles}"
                      required="#{}"
                      layout="grid"
                      columns="1"
                      disabled="#{!contactDetail.editMode}">
    <f:selectItems value="#{contactDetail.contactRoleItems}"/>
    <p:ajax event="change"
            process="@this"
            update="linked_relationship_detail"
            listener="#{contactDetail.doSomething()}"/>
</p:selectManyCheckbox>

当我选择或取消选择复选框时,会执行 doSomething() 方法,除非我取消选择最后一个复选框。因此,当没有选中复选框时,不会调用此方法。 当我将 required 属性设置为 false 时,就会调用该方法。直到某一点我理解这个逻辑,但我视图中的某些组件被渲染(或不渲染)取决于是否选择了复选框。那我怎么知道没有复选框被选中呢?

【问题讨论】:

  • PrimeFaces 版本?
  • 我正在使用 Primaces 6.0
  • 你能试试 6.1 吗?

标签: jsf primefaces


【解决方案1】:

如果您需要根据您的p:selectManyCheckbox 是否选择了任何组件来渲染组件,您可以简单地这样做:

... rendered="#{not empty contactDetail.contactRoles}" ...

【讨论】:

  • 你不能只在p:selectManyCheckbox上这样做...你需要把它包装起来:stackoverflow.com/questions/9010734/…
  • 此解决方案仍然存在相同的问题。因为 contactRoles 列表不为空(尽管所有内容都未选中),所以我没有得到正确的行为。
猜你喜欢
  • 2017-12-24
  • 2021-04-24
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 2019-07-25
  • 2019-01-26
相关资源
最近更新 更多