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.

Reply via email to