Hi,
It seems like when using <t:dataTable> with sorting and list if object
arrays (List<Object[]>), the data is not being sorted.
When I use the same code, but the value is a list of objects (and not object
array) sorting seems to be working fine.
JSP Code:
<t:dataTable id="tableBrowseCampaigns" value="#{report.reportRows}"
var="reportData"
renderedIfEmpty="false" sortable="true" preserveSort="true"
sortColumn="#{report.sortColumn}"
sortAscending="#{report.sortAscending}"
preserveDataModel="false" width="100%"
rowIndexVar="rowIndex" columnClasses=""
headerClass="head_tb paddl10" cellpadding="0" cellspacing="0"
sortedColumnVar="sortedColumn">
<t:column headerstyle="text-align:left;" style="text-align:left;"
styleClass="#{rowIndex % 2 == 0 ? 'bg_td1' : 'bg_td2'}">
<f:facet name="header">
<t:commandSortHeader columnName="name" arrow="false" immediate="false"
styleClass="link_headtb"
style="#{sortedColumn ? 'text-decoration:none;' :
''}">
<f:facet name="ascending">
<t:graphicImage value="images/general/arrow_sorting_asc.gif"
rendered="true"/>
</f:facet>
<f:facet name="descending">
<t:graphicImage value="images/general/arrow_sorting_desc.gif"
rendered="true"/>
</f:facet>
<h:outputText value="#{bundle['cmp_browse.table.title.name']} "/>
</t:commandSortHeader>
</f:facet>
<h:outputText value="#{reportData[0]} "/>
</t:column>
</t:dataTable>
Java Code:
public List<Object[]> getReportRows()
{
if (reportRows == null)
{
reportRows = new ArrayList<Object[]>();
reportRows.add(new String[] { "xxxx1", "yyyy1", "zzzzz1", "ttttt1" });
reportRows.add(new String[] { "xxxx2", "yyyy2", "zzzzz2", "ttttt2" });
reportRows.add(new String[] { "xxxx3", "yyyy3", "zzzzz3", "ttttt3" });
reportRows.add(new String[] { "xxxx4", "yyyy4", "zzzzz4", "ttttt4" });
reportRows.add(new String[] { "xxxx5", "yyyy5", "zzzzz5", "ttttt5" });
reportRows.add(new String[] { "xxxx6", "yyyy6", "zzzzz6", "ttttt6" });
reportRows.add(new String[] { "xxxx7", "yyyy7", "zzzzz7", "ttttt7" });
}
return reportRows;
}
Does it seems reasonable?
Thanks,
Guy.