sortBy with breakBefore
dgreenbean Jun 18, 2008 12:50 PMHi,
I am trying to create a table whose rows are doubled-up. I also want it to be sortable. This is an example of the HTML for the structure of the table that I want:
<table ...> <thead> <tr> <td>column A</td> <td>column B</td> <td>column C</td> </tr> <tr> <td>column D</td> <td>column E</td> <td>column F</td> </tr> </thead> <tbody> <tr> <td>record 1 value A</td> <td>record 1 value B</td> <td>record 1 value C</td> </tr> <tr> <td>record 1 value D</td> <td>record 1 value E</td> <td>record 1 value F</td> </tr> <tr> <td>record 2 value A</td> <td>record 2 value B</td> <td>record 2 value C</td> </tr> <tr> <td>record 2 value D</td> <td>record 2 value E</td> <td>record 2 value F</td> </tr> </tbody> </table>
The following comes close, but does not quite work:
<rich:dataTable ...> <rich:column sortBy="#{mybean.a}"> <f:facet name="header"> <h:outputText value="column A" /> </f:facet> <h:outputText value="#{mybean.a}" /> </rich:column> <rich:column sortBy="#{mybean.b}"> <f:facet name="header"> <h:outputText value="column B" /> </f:facet> <h:outputText value="#{mybean.b}" /> </rich:column> <rich:column sortBy="#{mybean.c}"> <f:facet name="header"> <h:outputText value="column C" /> </f:facet> <h:outputText value="#{mybean.c}" /> </rich:column> <rich:column breakBefore="true" sortBy="#{mybean.d}"> <f:facet name="header"> <h:outputText value="column D" /> </f:facet> <h:outputText value="#{mybean.d}" /> </rich:column> <rich:column sortBy="#{mybean.e}"> <f:facet name="header"> <h:outputText value="column E" /> </f:facet> <h:outputText value="#{mybean.e}" /> </rich:column> <rich:column sortBy="#{mybean.f}"> <f:facet name="header"> <h:outputText value="column F" /> </f:facet> <h:outputText value="#{mybean.f}" /> </rich:column> </rich:dataTable>
This produces a sortable table with doubled-up rows, but the headers are all on one line, similar to the following:
<table ...> <thead> <tr> <td>column A</td> <td>column B</td> <td>column C</td> <td>column D</td> <td>column E</td> <td>column F</td> </tr> </thead> <tbody> <tr> <td>record 1 value A</td> <td>record 1 value B</td> <td>record 1 value C</td> </tr> <tr> <td>record 1 value D</td> <td>record 1 value E</td> <td>record 1 value F</td> </tr> <tr> <td>record 2 value A</td> <td>record 2 value B</td> <td>record 2 value C</td> </tr> <tr> <td>record 2 value D</td> <td>record 2 value E</td> <td>record 2 value F</td> </tr> </tbody> </table>
I have tried the following with no luck:
<rich:dataTable ...> <f:facet name="header"> <rich:columnGroup> <rich:column sortBy="#{mybean.a}"> <h:outputText value="column A" /> </rich:column> <rich:column sortBy="#{mybean.b}"> <h:outputText value="column B" /> </rich:column> <rich:column sortBy="#{mybean.c}"> <h:outputText value="column C" /> </rich:column> <rich:column breakBefore="true" sortBy="#{mybean.d}"> <h:outputText value="column D" /> </rich:column> <rich:column sortBy="#{mybean.e}"> <h:outputText value="column E" /> </rich:column> <rich:column sortBy="#{mybean.f}"> <h:outputText value="column F" /> </rich:column> </rich:columnGroup> </f:facet> <rich:column sortBy="#{mybean.a}"> <h:outputText value="#{mybean.a}" /> </rich:column> <rich:column sortBy="#{mybean.b}"> <h:outputText value="#{mybean.b}" /> </rich:column> <rich:column sortBy="#{mybean.c}"> <h:outputText value="#{mybean.c}" /> </rich:column> <rich:column breakBefore="true" sortBy="#{mybean.d}"> <h:outputText value="#{mybean.d}" /> </rich:column> <rich:column sortBy="#{mybean.e}"> <h:outputText value="#{mybean.e}" /> </rich:column> <rich:column sortBy="#{mybean.f}"> <h:outputText value="#{mybean.f}" /> </rich:column> </rich:dataTable>
This puts the columns in two rows correctly, but they are no longer sortable.
Any help is greatly appreciated.
Thank you,
David