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
Riley Cat male 22
Avery Pig female 15
Avery Goat male 12
Avery Cat male 10
James Goat female 19
Riley Pig male 26
James Cat male 16
Avery Goat female 13
Riley Goat female 25
Riley Cat female 23
James Cat female 17
Riley Pig female 27
Riley Goat male 24
Avery Cat female 11
James Goat male 18
James Pig female 21
James Pig male 20
Avery Pig male 14
© 2005-2023 Apache Software Foundation, Licensed under the Apache License, Version 2.0.