There is only one commandLink on your page, not one per column and row
(or #{bean.rows}" multiplied #{bean.columns} in your case). If you
need to get the column name, you need to ask the t:columns component
for that information.
Use the binding attribute on your dataTable and your columns
components, and then do a "columns.getRowData()" [getRowData is NOT a
typo] to get the column object ("col") and "dataTable.getRowData()" to
get the row object ("g") inside your action method. Probably
something like
"((java.util.Map)dataTable.getRowData()).get(((COLUMN_TYPE)columns.getRowData()).getName())
On 2/21/06, Francesco Consumi <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> we're using <t:columns> to show data from a query result.
> We would need to assign an unique id to columns based on data field
> name, something like this:
>
> <t:dataTable value="#{bean.rows}" var="g" ......>
> <t:columns value="#{bean.columns}" var="col"
> styleClass="#{col.styleClass}">
> <f:facet name="header">
> <h:commandLink id="#{col.name}" actionListener="#{bean.orderBy}">
> <h:outputText value="#{col.label}"/>
> </h:commandLink>
> </f:facet>
> <h:outputText value="#{g[col.name]}"/>
> </t:columns>
> </t:dataTable>
>
> but obviously it's impossible to set id as a jsf variable.
>
> some idea to solve this problem ?
> We need the ID of column in "orderBy" method for retrieving the field
> to be ordered.
>
> --
> Francesco Consumi
> Ufficio Sistemi informativi
> Istituto degli Innocenti
> Piazza SS.Annunziata, 12
> 50122 Firenze
> consumi at istitutodeglinnocenti.it
> Tel. +39 055 2037320
> ICQ# 12516133
>
>
>