HI Mike!

I have done it with a ValueChangeListener, it works fine.
I get my Values for the BOX from the Database, because I have to update them 
very quickly. So I'm not sure, if you will do that yourself.

Here is my code, perhaps it helps you:


<!--FIRST SELECTBOX-->
<h:selectOneMenu  id="mandanten" styleClass="show"
        value="#{searchDto.mandant}" 
valueChangeListener="#{linker.listnewStandortsForSearch}"
        onchange="submit()"  rendered="#{searchDto.showAlleAnzeigenMandant}" >
        <f:selectItem itemValue="#{searchDto.nullwert}" itemLabel="#{msg.alle}" 
 />
        <f:selectItems value="#{queryHelper.mandanten}"/>
</h:selectOneMenu>

<!--SECOND SELECTBOX: DEPENDS ON FIRST SELECTBOX-->
<h:selectOneMenu id="standorte" styleClass="show"
        value="#{searchDto.standort}" 
rendered="#{searchDto.showAlleAnzeigenStandort}">
        <f:selectItem itemValue="#{searchDto.nullwert}" itemLabel="#{msg.alle}" 
/>
        <f:selectItems value="#{queryHelper.standorte}"/>
</h:selectOneMenu>

//HERE IS THE VALUECHANGEMETHOD:

public void listnewStandortsForSearch(ValueChangeEvent event) {

                qh = (QueryHelper) FacesUtil.getManagedBean("queryHelper");
                searchDto = (SearchDto) FacesUtil.getManagedBean("searchDto");
                Long newvalue = null;

                // Überprüfung ob Wert der Mandanten Combobox einen anderen 
Wert als 0
                // (=Alle Anzeigen) liefert
                if (((Long) event.getNewValue()).compareTo(new Long(0)) != 0) {
                        newvalue = (Long) event.getNewValue();
                        searchDto.setMandant(newvalue);

                }
                else {
                        searchDto.setMandant(new Long(0));
                }

                //CALL METHOD WHICH TAKES THE VALUES FOR THE 2nd BOX OUT OF THE 
DATABASE, DEPENDING ON THE SELECTION OF THE FIRST BOX.
                try {
                        qh.liststandorts(newvalue);
                }
                catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }


//NOT SO INTERESSTING FOR YOU:
                if (event.getComponent().getId()
                                .equalsIgnoreCase("newpartnerMandanten")) {
                        String viewId = "/newpartner.jsp";
                        FacesContext context = 
FacesContext.getCurrentInstance();
                        UIViewRoot view = 
context.getApplication().getViewHandler()
                                        .createView(context, viewId);
                        view.setViewId(viewId);
                        context.setViewRoot(view);
                        context.renderResponse();
                }
                else {
                        String viewId = "/search.jsp";
                        FacesContext context = 
FacesContext.getCurrentInstance();
                        UIViewRoot view = 
context.getApplication().getViewHandler()
                                        .createView(context, viewId);
                        view.setViewId(viewId);
                        context.setViewRoot(view);
                        context.renderResponse();
                }

        }

-----Ursprüngliche Nachricht-----
Von: Mike Duffy [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 14. Dezember 2005 09:37
An: [email protected]
Betreff: Dynamic Drop Down Lists


Is there any way to create dynamic drop down lists in JSF without using AJAX?

Without JSF there are JavaScript techniques that can be used to dynamically 
change a drop down
list (e.g., based on the selection of drop down list A, the values ion drop 
down list B are
populated by an onclick function),

However, with JSF, the changes made in JavaScript do not correspond to the 
values in the component
tree on the server, so an error is thrown.  I've tried to update the component 
through a
"valueChangeListener", but this also generates an error.

Has anyone found a way to do this in JSF?  Can you send a link with an example? 
 I Googled with no
success.

Thx.

Mike

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


______________________________________________________________________

This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
your system manager.

This footnote also confirms that this email message has been swept
for the presence of computer viruses.
______________________________________________________________________

Reply via email to