当在jsf中选中另一个复选框时,取消选中一个复选框

时间:2013-11-29 10:03:49

标签: jsf jsf-2 checkbox primefaces

我有一个场景,如果我勾选一个复选框,则应该取消选中另一个。

我正在使用JSF。

我的代码:

 <p:dataTable>
      <p:column headerText="PAID">
            <p:selectBooleanCheckbox value="#{bean.paid}" />
      </p:column>
      <p:column headerText="NOT PAID">
            <p:selectBooleanCheckbox value="#{bean.notPaid}"/>
       </p:column>
 </p:dataTable>

清除视图

enter image description here

我怎样才能做到这一点!

1 个答案:

答案 0 :(得分:3)

@Mr.J4mes已经有效了。

我尝试使用相同的方法但使用<p:selectBooleanCheckbox>

<强>代码

<p:column id="paid" headerText="Paid">
    <p:selectBooleanCheckbox id="paidCheckBox" value="#{bean.paid}">
       <p:ajax update="notPaidCheckBox" listener="#{bean.onPaidStatusChange}" />
    </p:selectBooleanCheckbox>
</p:column>
<p:column id="notPaid" headerText="NotPaid">
    <p:selectBooleanCheckbox id="notPaidCheckBox" value="#{bean.notPaid}">
        <p:ajax update="paidCheckBox" listener="#{bean.onNotPaidStatusChange}" />
    </p:selectBooleanCheckbox>
</p:column>

@ManagedBean(name="bean")
@SessionScoped
public class Bean {
   private boolean paid;
   private boolean notpaid;

   @PostConstruct
   public void Bean() {
      this.paid= true;
   }

   public void onPaidStatusChange() {
      if (paid) notpaid= false;
   }

   public void onNotPaidStatusChange() {
      if (notpaid) paid= false;
   }
}

这很好用。 Thanks for Mr.J4mes approach ;-)