myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Omar Elprince <general.equal....@gmail.com>
Subject Re: AW: [Trinidad] How to use an iterator, selectOneChoice and partialTriggers?
Date Wed, 09 Sep 2009 14:45:07 GMT
Use immediate="true"

--Omar

On Sep 9, 2009, at 8:24 AM, "Roeder, Andreas" <Andreas.Roeder@firstdata.de 
 > wrote:

> Thanx a lot, that worked like a glue. Just one problem is left: all  
> the selectOneChoice components are on required="true". How can I  
> avoid the validation?
>
> I already tried to call at the end of the ValueChangeListener the  
> call:
>
>    FacesContext.getCurrentInstance().renderResponse();
>
> but no success.
>
> -Andreas
>
> -----Urspr√ľngliche Nachricht-----
> Von: Andrew Robinson [mailto:andrew.rw.robinson@gmail.com]
> Gesendet: Montag, 7. September 2009 02:46
> An: MyFaces Discussion
> Betreff: Re: [Trinidad] How to use an iterator, selectOneChoice and  
> partialTriggers?
>
>
> If you give partial triggers an EL expression it must evaluate to  
> type String[]. The value change listener is fired for the current  
> iteration, so if you click item 3, the event will be broadcast for  
> the selectOneChoice inside the index 2 of tr:iterator. To move the  
> iterator to a new index you need to save the current row index, set  
> the new index, evaluate code and then set it back.
>
> An iterator stamps out one component and a component only has 1 ID,  
> so you cannot put EL in the ID like you did below. I would advise  
> using <f:attribute/> if you need to store the ID on the component,  
> but just give the choice a static ID.
>
> The resulting IDs on the client will be like "i1:0:soc1",  
> "i1:1:soc1", etc if your iterator had ID "i1" and your  
> selectOneChoice had ID "soc1". So the :#: in between represents the  
> stamp index.
>
> -Andrew
>
> On Fri, Sep 4, 2009 at 7:32 AM, Roeder, Andreas<Andreas.Roeder@firstdata.de 
> > wrote:
>> I'm trying to create generic selectOneChoice elements. When the first
>> selectOneChoice value changes it should update the next one in the
>> list and so on. I tried to do that via the id, partialTriggers and a
>> ValueChangeListener:
>>
>> <tr:iterator value="#{genericFormBean.formDesc.fieldList}"
>>                                var="field">
>>  <tr:selectOneChoice
>>        id="#{field.id}"
>>        partialTriggers="#{field.partialTriggers}"
>>        valueChangeListener="#{genericFormBean.valueChange}"
>>        value="#{genericFormBean.formDesc.modelMap[field.id]}"
>>        <f:selectItems
>>
>> value="#{genericFormBean.selectItemMap[field.itemList]}" />
>>  </tr:selectOneChoice>
>> <tr:iterator>
>>
>> But I cannot set the id of the selectOneChoice element. When I try to
>> get the other selectOneChoice elements in the valueChangeListener I
>> just see one element in the iterator.childs() collection. Why is  
>> that?
>>
>> I also tried to use a custom renderer to set the id, but as soon I
>> change the id of one selectOneChoice element all other elements are
>> getting the same id. It's pretty confusing to me.
>>
>> Is there another way to do that?
>>
>> Best Regards,
>>
>> Andreas
>>
>>
>

Mime
View raw message