Hi Andrew,

Thanks for your help, I'll try this asap

Regards

Jean-Noel 

On 16 Feb 2010, at 00:24, Andrew Robinson wrote:

> Option 1)
> Instead of using entryBean.subProjects to check for disabled, why not,
> since you are already using component binding, just set the component
> disabled attribute to true or false based on when it changes. Set it
> to true in the page and then when you set it in the component, it will
> remember that state and no longer check the EL.
> 
> Option 2)
> Store the disable state in the pageFlowScope
> 
> Option 3)
> Use a session scoped bean to store the disabled state
> 
> Option 4 (JSF 2 only))
> Store the disabled state in the viewScope
> 
> Option 5 (3rd party))
> Store the value in a conversation scope provided by a 3rd party library
> 
> 
> On Mon, Feb 15, 2010 at 1:02 PM, Jean-Noël Colin <[email protected]> wrote:
>> Andrew,
>> 
>> entryBean is indeed in request scope.  Indeed, entryBean.subProjects is 
>> always null, and I suspected this was related to the 'disabled' attribute. 
>> Thus my question is: how can I set the proper value before the decoding is 
>> done? When should that be performed?
>> 
>> Thanks for your help
>> 
>> Jean-Noel
>> 
>> On 15 Feb 2010, at 19:03, Andrew Robinson wrote:
>> 
>>> What scope is entryBean?
>>> 
>>> If entryBean is requestScope, then entryBean.subProjects will be null
>>> on each request and would need to be set before the decoding is done,
>>> otherwise the 2nd choice will never decode as it will be disabled. If
>>> entryBean is not requestScope than you also have a problem as you
>>> cannot use component binding with non-request scoped objects.
>>> 
>>> -Andrew
>>> 
>>> On Sun, Feb 14, 2010 at 8:32 AM, Jean-Noël Colin <[email protected]> wrote:
>>>> Hi
>>>> 
>>>> I need to write a simple page with 2 selectOneChoice components, the 
>>>> second being dependent on the first. This means that the second should be 
>>>> disabled as long as a correct value in the first one has not been 
>>>> selected. Also, the items in the second need to be dynamically loaded 
>>>> depending on the content on the first one.
>>>> 
>>>> I guess this should be easily feasible in Trinidad, but obviously, I must 
>>>> be missing something because I can't get it to work. it seems that the 
>>>> value of the second component never gets properly populated in the bean 
>>>> entry. Also, strangely, in the 'valuechangelistener', the oldvalue is 
>>>> always null, even when a proper value was correctly selected.
>>>> 
>>>> Also, is it possible to avoid the presence of a 'empty' selectItem by 
>>>> auto-selecting the first valid entry (how can I do that)?
>>>> 
>>>> Thanks a lot for your help
>>>> 
>>>> Jean-Noel Colin
>>>> 
>>>> 
>>>> 
>>>> 
>>>>                                <tr:selectOneChoice id="project" 
>>>> label="project"
>>>>                                        
>>>> binding="#{entryBean.projectSelector}"
>>>>                                        
>>>> value="#{entryBean.currentLine.projectId}" showRequired="true"
>>>>                                        autoSubmit="true" 
>>>> unselectedLabel="Select" immediate="true"
>>>>                                        
>>>> valueChangeListener="#{entryBean.projectChangeListener}">
>>>>                                        <f:selectItems 
>>>> value="#{globalData.activeprojects}" />
>>>>                                </tr:selectOneChoice>
>>>>                                <tr:selectOneChoice id="subproject" 
>>>> label="sub-project"
>>>>                                        partialTriggers="project" 
>>>> binding="#{entryBean.subProjectSelector}"
>>>>                                        
>>>> value="#{entryBean.currentLine.subProjectId}" showRequired="true"
>>>>                                        unselectedLabel="Select" 
>>>> disabled="#{empty entryBean.subProjects}">
>>>>                                        <f:selectItems 
>>>> value="#{entryBean.subProjects}" />
>>>>                                </tr:selectOneChoice>
>>>> 
>>>> 
>> 
>> 

Reply via email to