Расширение функциональности для строк в Richfaces DataTable - PullRequest
0 голосов
/ 23 сентября 2011

Я ищу способ реализовать расширенную функциональность для строк таблицы данных Richfaces. Пользователь щелкает ссылку « + », расположенную в первом столбце (каждой строки) таблицы данных, и строка «расширяется» (, означая, что новый текст будет отображаться между текущей строкой и следующий ).

У меня это работает, единственная проблема в том, что вся информация в расширенном представлении отображается в первом разделе столбца этой строки. То, что я пытаюсь сделать, это показать «расширенный» текст во всей строке (как будто строка «расширенного» текста не разделена на столбцы ).

Есть предложения? Я немного новичок в jsf / richfaces, так что любой пример кода будет оценен.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Одним из способов для этого является использование функции JQuery.

Демонстрационная ссылка http://jsfiddle.net/BU28E/1/.

Еще одна дополнительная нагрузка - вам нужно проверить, как rich: dataTable отображает Html, и предоставить модель DOM для jQuery. Немного сложно иметь такую ​​функцию в richfaces, и она требует некоторых сложных обходных путей.

0 голосов
/ 23 сентября 2011

Это можно сделать с помощью атрибута breakBefore в столбце rich:. Пример его использования приведен на демонстрационной странице RF .

Это бы сработало, если бы в последнем столбце был указан атрибут breakBefore . Пример:

<rich:dataTable id="mytbl" value="#{mybean.mydata}" var="row">
     <rich:column>
        <a4j:commandLink reRender="mytbl">
            <h:graphicImage value="#{row.toggleImage}"></h:graphicImage>
            <a4j:actionparam name="shown" value="#{not row.expand}" assignTo="#{row.expand}"/>
        </a4j:commandLink>
    </rich:column>
    <rich:column>
        <f:facet name="header">col 2</f:facet>
        <h:outputText value="#{row.col2}"/>
    </rich:column>
    <rich:column breakBefore="true">
        spans all the other columns
    </rich:column>
</rich:dataTable>   
...