Я ищу способ показать/скрыть произвольный компонент RichFaces. В этом случае у меня есть <rich:dataTable>
, который содержит несколько строк. Каждая строка должна иметь свою собственную независимую ссылку «Показать/скрыть», чтобы при нажатии кнопки «Показать подробности» происходили две вещи:
- Ссылка «Показать подробности» перерисована как «Скрыть подробности».
- Связанные столбцы деталей должны стать видимыми (начиная с состояния
rendered="true"
, ноstyle="display: none;"
).
Я не хочу писать свои собственные функции JavaScript, если в этом нет абсолютной необходимости. Я также не хочу, чтобы bean-компонент на стороне сервера отслеживал, какие detailColumns отображаются, а затем повторно отображал все через AJAX: это должно быть чисто поведением на стороне клиента. Я не уверен, как это сделать.
Следующий псевдокод (надеюсь) иллюстрирует мою цель:
<rich:column>
<a href="#" onclick="#{thisRow.detailsColumn}.show();" rendered="">Show details</a>
<a href="#" onclick="#{thisRow.detailsColumn}.hide();" rendered="">Hide details</a>
</rich:column>
<rich:column>
<h:outputText value="#{thisRow.someData}" />
</rich:column>
<rich:column id="detailsColumn" colspan="2" breakBefore="true">
<h:outputText value="#{thisRow.someMoreData}" />
</rich:column>