#jsf-2 #primefaces
#jsf-2 #primefaces
Вопрос:
Как я могу динамически добавлять / удалять вводимый текст primefaces?
Комментарии:
1. Меня удивило, что вы приняли ответ Мишеля, я имел в виду совершенно другое функциональное требование. Решение Michel потребует фиксированного количества подготовленных входных данных в представлении, в то время как вы, похоже, хотите, чтобы пользователь добавлял / удалял неопределенное количество динамически.
2. Согласен с вами. Поскольку я был новичком в этом, я думал, что это сработает. Но это будет работать, только если у нас будет фиксированное количество подготовленных входных данных, как вы сказали .. Но я сделал некоторое обходное решение и подготовил его к работе без использования rendered.
3. Затем вы должны опубликовать это в качестве подробного ответа и принять себя.
Ответ №1:
Чтобы добавить / удалить текстовые поля, попробуйте следующие фрагменты.
<h:panelGrid columns="1" cellpadding="10">
<h:commandButton value=" " action="#{contactBean.addPhone}"
image="../images/addbtn.png" />
<p:dataTable border="0" value="#{contactBean.phoneNos}" var="p"
rowIndexVar="rowIndex" emptyMessage="No phone numbers entered">
<p:column>
<h:selectOneMenu id="extraTask1" value="#{p.phoneType}">
<f:selectItem itemLabel="Select" itemValue="" />
<f:selectItem itemLabel="Mobile" itemValue="Mobile" />
<f:selectItem itemLabel="Work" itemValue="Work" />
<f:selectItem itemLabel="Others" itemValue="Others" />
</h:selectOneMenu>
</p:column>
<p:column>
<p:inputText value="#{p.phoneNo}" />
</p:column>
<p:column>
<h:commandButton value="remove" image="../images/button_remove.gif"
actionListener="#{contactBean.removePhone}">
<f:param name="columnToRemove" value="#{rowIndex}" />
</h:commandButton>
</p:column>
</p:dataTable>
</h:panelGrid>
Комментарии:
1. Я использую
p:dataGrid
для решения аналогичной проблемы, но компоненты внутри него имеют одинаковые идентификаторы. У вас были те же проблемы? В чем причина использованияp:dataTable
? Заранее спасибо2. У меня не было этой проблемы. В настоящее время все значения публикуются в списке. Во всяком случае, я не пробовал с
p:dataGrid
.3. При использовании DataTable все данные обрабатываются списком. И потому, что проще обновить компонент PrimeFaces с возможностью обработки данных, который предоставляет возможность некоторого динамического компонента.
Ответ №2:
Это простой режим:
<h:inputText rendered="#{object.visibile}" />
если object.visibile == true
входной текст виден.