First alternative, using component binding (note: your backedbean must
be session scoped):
<h:dataTable binding="#{backedBean.component} value="..."  ... >

    ....
       <h:selectOneMenu styleClass="blue" value="currentVersion">
            <f:selectItems value="#{backedBean.version}"/>
       </h:selectOneMenu> 
    ....
</h:dataTable>

In you backed bean:

public void setComponent(UIComponent component) {...}
public UIComponent getComponent() {...}
public SelectItem[] getVersion() {
    ...
    int row = ((UIData)getComponent()).getRowIndex();
    ...
}

Second alternative (prefered), do a separate selectItems construction in
each bean of collection:
<h:dataTable value="#{backedBean.items}" var="item" >

    ....
       <h:selectOneMenu styleClass="blue" value="#{item.currentVersion}">
            <f:selectItems value="#{item.availableVersions}"/>
       </h:selectOneMenu> 
    ....
</h:dataTable>
En l'instant précis du 06/08/07 10:07, Dipl.-Ing. Torsten Liermann
s'exprimait en ces termes:
> Hi,
>
> A Beginner's question to h:dataTable
>
> I have a table for each row another
> Combo box must be generated. The contents surrender from the current row 
> object
>
> Unfortunately, the expression Language does not support the following syntax:
>
> <h:selectOneMenu styleClass="blue" value="currentVersion">
>   <f:selectItems value="#{backedBean.version(rowObject}"/>
> </h:selectOneMenu>
>
>
> Is there a callback into the backing bean which is called for each row?
> Or how is the recommended way without touch the domain object?
>
> Thanks
> Torsten
>   


-- 
http://www.noooxml.org/

Reply via email to