You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Guy Bashan <gu...@gmail.com> on 2008/06/22 15:30:48 UTC

[Tomahawk]

Hi,

 

I am having a little problem with <t:columns> and sort header.

I have just converter a <t:datatable> to use <t:columns> instead of
<t:column> (for a more generic use.).

After the conversion, each time I press a column header, all headers are
rendered as the selected sort header.

Probably this happened due to the move from <t:column> to <t:column>.

I am assuming after posting the code, someone will probably tell me I don't
understand how data tables work in JSF, but still, I will take the risk .
;-)

 

Here is the table code:

<t:dataTable id="tableReport" value="#{report.reportRows}" var="reportRow"

             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:columns value="#{report.columnDataModel}" var="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="#{column.title} "/>

    </t:commandSortHeader>

  </f:facet>

  <h:outputText value="#{report.reportRowValue}"
rendered="#{report.columnHeader.type == 'string'}"/>

  <h:outputText value="#{report.reportRowValue}"
rendered="#{report.columnHeader.type == 'date'}">

    <f:convertDateTime locale="#{appBean.userLanguageLocale}" type="date"
timeZone="#{appBean.userTimeZone}" />

  </h:outputText>

  <h:outputText value="#{report.reportRowValue}"
rendered="#{report.columnHeader.type == 'integer'}">

    <f:convertNumber locale="#{appBean.userLanguageLocale}" />

  </h:outputText>

  <h:outputText value="#{report.reportRowValue}"
rendered="#{report.columnHeader.type == 'percent'}">

    <f:convertNumber locale="#{appBean.userLanguageLocale}" type="percent"
maxFractionDigits="3" />

  </h:outputText>

  <h:outputText value="#{report.reportRowValue}"
rendered="#{report.columnHeader.type == 'currency'}">

    <f:convertNumber locale="#{appBean.userLanguageLocale}"
maxFractionDigits="3" type="currency"
currencyCode="#{appBean.userCurrencyCode}" />

  </h:outputText>

</t:columns>

</t:dataTable>

 

Thanks,

Guy.