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.