1

是否有可能以某种方式在 ap:selectManyCheckbox 的 selectItems 之间显示一个 h:inputText?

我想要的是:

  • 复选框1
  • 复选框2
  • inputTextIfCheckbox2IsMarked(如果未标记则禁用..)
  • 复选框 3
  • 复选框 4

我知道如何启用/禁用复选框等,但在 selectItems 之外。我想把它放在他们之间。

这有可能以某种方式吗?

我的解决方案是(inputText 不在 selectItems 之间):

<h:panelGrid columns="2">
    <p:selectManyCheckbox converter="otherAdmissionReasonConverter"
                          id="otherAdmissionReasonCheckbox"
                          value="#{potentialDonorFileBackingBean.potentialDonorFile.generalPatientInformation.otherAdmissionReasons}"
                          layout="grid" columns="1">

        <f:selectItems value="#{patientInformationBackingBean.otherAdmissionReasons}"
                       var="otherAdmissionReason"
                       itemValue="#{otherAdmissionReason}"
                       itemLabel="#{msgs['ar.'.concat(otherAdmissionReason)]}"/>
        <p:ajax update="customAdmissionReasonGrid"/>
    </p:selectManyCheckbox>

    <h:panelGroup id="customAdmissionReasonGrid"
                  styleClass="customAdmissionReason">

        <p:inputText id="customAdmissionReason"
                     disabled="#{!potentialDonorFileBackingBean.potentialDonorFile.generalPatientInformation.otherAdmissionReasonChecked()}"
                     value="#{potentialDonorFileBackingBean.potentialDonorFile.generalPatientInformation.customAdmissionReason}"/>
    </h:panelGroup>
</h:panelGrid>

PrimeFaces:5.2

4

1 回答 1

3

对于 PrimeFaces < 5.2.3 你不能。对于 PrimeFaces >=5.2.3,您可以使用这样的自定义布局(© PrimeFaces)

<h3>Custom Layout (since v5.2.3)</h3>
<p:outputPanel id="customPanel" style="margin-bottom:20px">
    <p:selectManyCheckbox id="custom" value="#{checkboxView.selectedConsoles2}" layout="custom">
        <f:selectItem itemLabel="Xbox SixSixSix" itemValue="Xbox SixSixSix" />
        <f:selectItem itemLabel="PS9" itemValue="PS9" />
        <f:selectItem itemLabel="Wii Them" itemValue="Wii Them" />
    </p:selectManyCheckbox>

    <div class="ui-grid ui-grid-responsive">
        <div class="ui-grid-row">
            <div class="ui-grid-col-4">
                <h:outputLabel for="opt1" value="Xbox SixSixSix" style="display:block"/>
                <p:checkbox id="opt1" for="custom" itemIndex="0" />
            </div>
            Some Custom Text between item 1 and 2
            <div class="ui-grid-col-4">
                <h:outputLabel for="opt2" value="PS9" style="display:block"/>
                <p:checkbox id="opt2" for="custom" itemIndex="1" />
            </div>
            <div class="ui-grid-col-4">
                <h:outputLabel for="opt3" value="Wii Them" style="display:block"/>
                <p:checkbox id="opt3" for="custom" itemIndex="2" />
            </div>
        </div>
    </div>
</p:outputPanel>
于 2016-01-14T11:52:24.500 回答