Лучший способ создать расширяемую / складывающуюся подтаблицу с помощью rich: dataTable - PullRequest
0 голосов
/ 11 декабря 2008

Я недавно портировал приложение из JSF 1.1 в JSF 1.2. В процессе мы удалили томагавк и решили вместо него использовать rich.

Теперь мне нужен способ сделать расширяемую / складывающуюся деталь Viev для каждой строки в таблице.

Единственное, о чем я могу думать, это что-то вроде этого (адаптировано из документации на docs.jboss.com):

<rich:dataTable value="#{capitalsBean.capitals}" var="capitals">
    <rich:column>
        ...
    </rich:column>
    <rich:subTable value="#{capitals.details}" var="detail" ajaxKeys="#{bean.ajaxSet}" binding="#{bean.subtable}" id="subtable" rendered="detail.detailOpened">
        <rich:column>
            ...
        </rich:column>
    </rich:subTable>
</rich:dataTable>

Полагаю, что-то подобное сработало бы. Проблема в том, что мне нужно либо добавить getDetailOpened и setDetailOpened к объектам, которые я использую, либо обернуть каждый объект в другой объект, который предоставляет эти два метода.

Кто-нибудь знает лучший способ или как это сделать?

1 Ответ

1 голос
/ 12 декабря 2008

Я часто добавляю методы к моим bean-компонентам (или bean-компонентам-оберткам), которые содержат эти свойства, как способ работы с JSF. Это не красиво, но работает.

Единственная другая опция, о которой я могу подумать в данный момент, - это использовать функцию JavaScript для переключения состояния представления сведений. Это не было бы идеально по ряду причин, но избавило бы вас от необходимости сохранять состояние на стороне сервера.

...