Tobago Demo

Menu

Sheet Sorting

Sorting can be enable via the sortable attribute in the <tc:column/>. A custom sorting implementation can be set in the sortActionListener attribute in the <tc:sheet/>.

It's important to have a component inside the <tc:column/>, e. g. <tc:out value="#{object.name}"/>. If there is only a fragment like #{object.name}, sorting will not be possible!

Tag Library Documentation: <tc:sheet/> | <tc:column/>

Basics

In this example, the sortable attribute is 'true' for all columns. Notice, that there are negative periods.

<tc:column label="Name" sortable="true">
NamePeriod (Days)Discovery Year
Sun0.0
Mercury87.97
Venus224.7
Earth365.26
Rows 1 to 4 of 88
  • Page 1 of 22

Custom Sorting

All columns in this sheet can be sorted. A custom sorting implementation is set. Now, the sign for period numbers is ignored by sorting.

<tc:sheet value="#{sheetController.solarList}" var="solarobject" rows="4" sortActionListener="#{sheetController.sheetSorter}"> <tc:column id="namecol" label="Name" sortable="true"> ...
NamePeriod (Days)Discovery Year
Sun0.0
Mercury87.97
Venus224.7
Earth365.26
Rows 1 to 4 of 88
  • Page 1 of 22

Multi-Column Sorting

With the attribute maxSortColumns it is possible to visualize more than one sorting column. In this example you can sort by 3 columns. It works by clicking the column header in the reverse order. It's also possible to use ascending and descanding orders mixed.

It is also possible to use this via the API from the application like the button below shows.

NameSpeciesGenderAge
AveryCatfemale11
AveryGoatmale12
AveryPigfemale15
JamesCatmale16
JamesCatfemale17
RileyGoatmale24
RileyPigmale26
RileyCatmale22
JamesPigmale20
AveryPigmale14
RileyGoatfemale25
JamesGoatmale18
AveryGoatfemale13
RileyCatfemale23
JamesPigfemale21
RileyPigfemale27
AveryCatmale10
JamesGoatfemale19
© 2005-2024 Apache Software Foundation, Licensed under the Apache License, Version 2.0.