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">
Name Period (Days) Discovery Year
Sun 0.0
Mercury 87.97
Venus 224.7
Earth 365.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"> ...
Name Period (Days) Discovery Year
Sun 0.0
Mercury 87.97
Venus 224.7
Earth 365.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.

Name Species Gender Age
Avery Goat male 12
James Goat male 18
Avery Pig male 14
Avery Pig female 15
Riley Goat male 24
Riley Goat female 25
Riley Pig female 27
James Pig female 21
Avery Cat male 10
Riley Pig male 26
James Cat male 16
Riley Cat male 22
Avery Cat female 11
James Cat female 17
Riley Cat female 23
Avery Goat female 13
James Pig male 20
James Goat female 19
© 2005-2025 Apache Software Foundation, Licensed under the Apache License, Version 2.0.