0

3 つの列と各列のヘッダーにチェックボックスがあるデータテーブルがあります。1 つのチェックボックスを選択すると、他の 2 つのチェック ボックスを更新する必要があります。これらの列の下の各行は、バリデータを含む入力ボックスです。フォームを送信すると、バリデーターが実行されているのがわかりますが、actionListener は呼び出されません。スタックトレースもありません。提案してください。

    <p:dataTable id="segmentRangeTable" var="rank"
    value="#{segmentSetup.ranks}">

    <p:column headerText="Segment Names">
        <p:outputPanel layout="block">
            <p:inputText id="segmentName" style="text-transform:uppercase"
                value="#{segmentSetup.userSegment.segmentNames[rank].name}"
                validator="#{segmentSetup.validateNames}" immediate="true" />
            <p:message for="segmentName" />
        </p:outputPanel>
    </p:column>

    <p:column>
        <f:facet name="header">
            <p:outputPanel layout="block">
                <p:outputLabel value="AUM" />
                <br />

                <p:outputPanel id="AUMcheckBox">
                    <p:selectBooleanCheckbox itemLabel="Default Rating" 
                        styleClass="defaultRating"
                        value="#{segmentSetup.defaultRating eq 'AUM' ? true : false}"
                        disabled="#{!segmentSetup.userSegmentTypesMap['AUM'].selected}" >
                        <p:ajax update=":tabView:clientSegmentationTabForm:segmentRangeTable:REREVcheckBox :tabView:clientSegmentationTabForm:segmentRangeTable:REVcheckBox :tabView:clientSegmentationTabForm:segmentRangeTable:AUMcheckBox" process="@this" immediate="true"
                            listener="#{segmentSetup.changeDefaultRating('AUM')}" />
                    </p:selectBooleanCheckbox>

                </p:outputPanel>

            </p:outputPanel>
        </f:facet>
        <p:inputText id="AUM" styleClass="AUM"
            value="#{segmentSetup.userSegmentTypesMap['AUM'].segmentValues[rank].rangeMinValue}"
            disabled="#{!segmentSetup.userSegmentTypesMap['AUM'].selected || (rank==fn:length(segmentSetup.ranks))}"
            validator="#{segmentSetup.validateRanges}" immediate="true" >
            <f:convertNumber maxFractionDigits="2" currencySymbol="$"
                type="currency" minFractionDigits="0" />
        </p:inputText>
        <p:message for="AUM" />
    </p:column>

    <p:column>
        <f:facet name="header">
            <p:outputPanel>
                <p:outputLabel value="GROSS REVENUE" />
                <br />
                <p:outputPanel id="REVcheckBox">
                    <p:selectBooleanCheckbox itemLabel="Default Rating" 
                        styleClass="defaultRating"
                        value="#{segmentSetup.defaultRating eq 'GRRVN' ? true : false}"
                        disabled="#{!segmentSetup.userSegmentTypesMap['GRRVN'].selected}">
                        <p:ajax update=":tabView:clientSegmentationTabForm:segmentRangeTable:REREVcheckBox :tabView:clientSegmentationTabForm:segmentRangeTable:REVcheckBox :tabView:clientSegmentationTabForm:segmentRangeTable:AUMcheckBox" immediate="true"
                            listener="#{segmentSetup.changeDefaultRating('GRRVN')}">
                        </p:ajax>
                    </p:selectBooleanCheckbox>
                </p:outputPanel>
            </p:outputPanel>
        </f:facet>
        <p:outputPanel>
            <p:inputText id="GRRVN" styleClass="GRRVN"
                value="#{segmentSetup.userSegmentTypesMap['GRRVN'].segmentValues[rank].rangeMinValue}"
                disabled="#{!segmentSetup.userSegmentTypesMap['GRRVN'].selected  || (rank==fn:length(segmentSetup.ranks)) }"
                validator="#{segmentSetup.validateRanges}" immediate="true" >
                <f:convertNumber maxFractionDigits="2" currencySymbol="$"
                    type="currency" />
            </p:inputText>
            <p:message for="GRRVN" />
        </p:outputPanel>
    </p:column>

    <p:column>
        <f:facet name="header">
            <p:outputPanel>
                <p:outputLabel value="REC REVENUE" />

                <br />
                <p:outputPanel id="REREVcheckBox">
                    <p:selectBooleanCheckbox itemLabel="Default Rating" 
                        styleClass="defaultRating"
                        value="#{segmentSetup.defaultRating eq 'RERVN' ? true : false}"
                        disabled="#{!segmentSetup.userSegmentTypesMap['RERVN'].selected}">
                        <p:ajax update=":tabView:clientSegmentationTabForm:segmentRangeTable:REREVcheckBox :tabView:clientSegmentationTabForm:segmentRangeTable:REVcheckBox :tabView:clientSegmentationTabForm:segmentRangeTable:AUMcheckBox" immediate="true"
                            listener="#{segmentSetup.changeDefaultRating('RERVN')}">
                        </p:ajax>
                    </p:selectBooleanCheckbox>
                </p:outputPanel>

            </p:outputPanel>
        </f:facet>

        <p:inputText id="RERVN" styleClass="RERVN"
            value="#{segmentSetup.userSegmentTypesMap['RERVN'].segmentValues[rank].rangeMinValue}"
            disabled="#{!segmentSetup.userSegmentTypesMap['RERVN'].selected  || (rank==fn:length(segmentSetup.ranks)) }"
            validator="#{segmentSetup.validateRanges}" >
            <f:convertNumber maxFractionDigits="2" minFractionDigits="0"
                currencySymbol="$" type="currency" />
        </p:inputText>

        <p:message for="RERVN" />
    </p:column>

</p:dataTable>

<p:outputPanel layout="block" styleClass="blx-align-rl">
    <p:commandButton id="saveButton" value="Save" process="@form"
        update="@form" actionListener="#{segmentSetup.save}" >
        <f:param name="VALIDATE" value="true" />
        </p:commandButton>
    <p:commandButton id="cancelButton" value="Cancel" update="@form"
        actionListener="#{segmentSetup.reset}" immediate="true" />
</p:outputPanel>
4

1 に答える 1