This should have gone to the mailing list so I will repost it here:

Hi Russell,

see http://tapestry.apache.org/using-select-with-a-list.html for a
thorough explanation on how to do this.

The problem I see in your approach is that you a an arbitrary number of
select components having the same name. Perhaps you should try and make
this a single component instead, where the group names are used for
grouping individual options, namely the users that belong to that group.

E.g.

   Morgue Accessoires Sales Dep
      John Doe
      Frank Stein
   Liquor Sales Dep
      George Doubleu
      John Wayne

This is also supported by the HTML select element, using option groups.

And, considering that this will render a single select element instead of
twenty, this will increase overall useability a lot.

The standard select component does not support this, but you can always
extend upon that behaviour and implement your own custom component.

Cheers
-- Carsten

> I am trying to wrap my head around how to do this in tapestry. 
>
> I have a form with 20 select components that are created with the loop
> component. 
>
> Given a Map<Group, User> groupMap...
>
> Each select component's value (user) is a value in the map. 
>
> Each label (group) for each select is the key of the map
>
> when a select components value has been changed, I want to update the map
> with it value.
>
> I understand that if this was just one select component I could just say
> something like OnChangeFromSelectID or a zone. 
>
> But I'm trying to understand how to do this with 20 select components:
>
> TML:
> <table>
>
>   <tr>
>    <td colspan="2">
>      <label>Group</label>
>        </td>
>          </tr>
>           <t:loop source="salesGroups" value="group" element="tr">
>             <td><t:label for="GroupName">${group.groupName}</t:label></td>
>             <td><t:select t:id="GroupName" model="userModel"
> value="GroupUser"  /></td>
>           </t:loop>
> </table>
>
> PAGE CLASS?:
>     public Object onGroupNameChange(User user)
>     {    
>       groupMap.put(group, recipient);
>     }
>
>
> I'm still new but i'm starting to get the hang of T5...
> Thanks!
> -Russell




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to