【问题标题】:Checkbox is shown twice on select one radio button primefaces复选框在选择一个单选按钮primefaces上显示两次
【发布时间】:2016-09-19 22:28:39
【问题描述】:

我有带有向导的表单中的 selectOneRadio 组件,并且我有复选框,如果选择第一个单选按钮,则应该启用该复选框。这是我的单选按钮代码:

<p:selectOneRadio id="decision" value="#{bean.decisionApproved}">
                                    <f:selectItem itemLabel="Approved" itemValue="true" />
                                    <f:selectItem itemLabel="Declined"  itemValue="false"/>
                                    <p:ajax update="permitPriniting"/>
</p:selectOneRadio>

这是我的复选框代码:

  <h:panelGroup id="permitPriniting">
     <p:column colspan="2">
             <p:selectBooleanCheckbox value="#{bean.printingApproved}" 
                                                             id="printingApId"
                                                             disabled="#{bean.decisionApproved  ne true}">

但是,当我选择第一个单选按钮时,该复选框未启用,它显示了两次,就像它再次呈现一样。

【问题讨论】:

  • 你确定bean.decisionApproved 的值被正确传输到requestForAuthorizationForAmmunitonPurchaseBean.request.decisionApproved 吗?此外,我假设您可以将条件简化为 requestForAuthorizationForAmmunitonPurchaseBean.request.decisionApproved,因为它的计算结果为布尔值。
  • 是的,我确定。我已经更新了问题
  • bean.decisionApproved 的 getter 是否在 AJAX 事件被触发后被调用,它是否包含正确的值?另外,请用简化的条件试试disabled="#{not bean.decisionApproved}

标签: jsf primefaces


【解决方案1】:

我刚刚改了这个:

 <p:ajax update="permitPriniting"/>

到这里:

 <p:ajax update="printingApId"/>

它有效:)

【讨论】:

  • 这很奇怪......我几乎 100% 肯定还有其他事情发生。在您发布的代码中看不到的东西(因为您没有发布 minimal reproducible example
  • @Kukeltje 嗯,column panelGroup,这样可以吗?也许另一种解决方案是将panelGroup 更改为panelGrid
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 2019-01-21
  • 2013-02-09
  • 2012-04-23
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
相关资源
最近更新 更多