通过检查另一个来检查或取消选中selectBooleanCheckBox

时间:2016-11-03 13:09:02

标签: jsf

我有一个,情况: 在JSF页面中,我有一些selectBooleanCheckbox。我需要的是,当我检查其中一个时,其他一些是未经检查的。我正在努力在JasperReports报告中添加或删除列,只是为了解释我为什么需要这样做。

有可能吗?如果是的话,我希望得到一些帮助,谢谢。

XHTML:

                    <h:selectBooleanCheckbox value="#{simpleReport.colunaId}" />
                    <h:outputText escape="false" value="Cód." />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaCliente}" />
                    <h:outputText escape="false" value="Cliente" />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaCondutor}" />
                    <h:outputText escape="false" value="Condutor" />
                    <h:selectBooleanCheckbox
                        value="#{simpleReport.colunaCondicaoTempo}" />
                    <h:outputText escape="false" value="Cond. Tempo" />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaOcorrencia}" />
                    <h:outputText escape="false" value="Ocorrência" />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaStatus}" />
                    <h:outputText escape="false" value="Status" />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaPeriodo}" />
                    <h:outputText escape="false" value="Período" />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaSoma}" />
                    <h:outputText escape="false" value="Soma" />
                    <h:selectBooleanCheckbox value="#{simpleReport.colunaQtdCli}" />
                    <h:outputText escape="false" value="QtdCli" />
                    <h:selectBooleanCheckbox value="#{simpleReport.groupByCLiente}" />
                    <h:outputText escape="false" value="Group" />

boolean colunaId = false, colunaCliente = false, colunaCondutor = false, colunaPeriodo = false,
        colunaCondicaoTempo = false, colunaStatus = false, colunaOcorrencia = false, colunaSoma = false,
        colunaQtdCond = false, colunaQtdCli = false;

boolean groupByCLiente = false, groupByCondutor = false;

我发现这篇文章:Single Select Checkbox Using JSF但情况并非如此,我无法实现我所需要的。

例如,如果我检查“组”,则取消选中“Ocorrencia”和“Status”。 enter image description here

1 个答案:

答案 0 :(得分:3)

您应该向复选框添加<p:ajax子项,这些复选框会影响您update相应复选框受影响的其他人,并添加listener方法,该方法会重置复选框的相应值在您的视图模型中受到影响。与

类似

page.xhtml

<!-- Should be reset if "2" is selected -->
<p:selectBooleanCheckbox id="1" value="#{view.value1}"/> 

<p:selectBooleanCheckbox id="2" value="#{view.value2}">
    <p:ajax update="1" listener="#{view.resetValue1}"/>
</p:selectBooleanCheckbox>

View.java

public void resetValue1() {
    this.value1 = false;
}