2017-02-20 42 views
0

В Primefaces (JSF) у меня есть список флажков. (Данные для списка поступают динамически из БД)Primefaces - добавление текстового поля динамически под этим флажком, если флажок установлен

И я хочу добавить текстовое поле под этим галочкой, если пользователь установил флажок.

Любые подсказки, пожалуйста, как это можно сделать?

HTML

<p:column> 
     <p:selectManyCheckbox id="resolutionPower" value="#{resBRRD_83_2_3_Bean.selectedResolutionPowers_DD}" layout="grid" columns="1" required="true"> 
      <f:selectItems value="#{resBRRD_83_2_3_Bean.resolutionPowers_DD}" var="data" itemValue="#{data}" itemLabel="#{data.tcdDesc}" /> 
      <o:converter converterId="omnifaces.ListConverter" list="#{resBRRD_83_2_3_Bean.resolutionPowers_DD}" /> 
     </p:selectManyCheckbox> 
     <p:inputText /> 
    </p:column> 

enter image description here

+0

вы попробовать событие Ajax и rendred в inputText?!? –

+0

и ваш скрытый inputText будет между элементами списка (скажем, например, «1. Продажа ...» и «2. Мост в ...»)?!? –

+0

@YagamiLight Спасибо, мне удалось это сделать с помощью ui: repeat – Jay

ответ

0

мне удалось это сделать, как показано ниже, используя пользовательский интерфейс: повторить с отдельными полями

HTML

<ui:repeat var="gtField" value="#{resBRRD_83_2_3_Bean.resolutionPowers_DD}"> 
    <h:panelGroup id="resolutionPower"> 
     <p:selectBooleanCheckbox itemLabel="#{gtField.tcdDesc}" value="#{gtField.selected}"> 
      <p:ajax type="change" process="@this" update="@this resolutionPower" /> 
     </p:selectBooleanCheckbox> 
     <br /> 
     <p:inputText rendered="#{gtField.selected}" style="width:100%" /> 
     <p:spacer height="5px" rendered="#{gtField.selected}" /> 
     <br /> 
    </h:panelGroup> 
</ui:repeat> 

После указанного исправления,

enter image description here