• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Is it possible to refresh the dropdown h:selectOneMenu

 
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here is my requirement

The user creates new record by selecting "New" value from the dropdown. Then user enters values on form fields and clicks the Submit button. The result is new Record gets created in the database and also gets populated in the dropdown. But the dropdown still shows the "New" value whereas I want the drop down to dynamically change from "New" to newly created value in the drop down

The dropdown is populated from the database as shown below

<h:outputText value="Manufacturer" /> <h:selectOneMenu id="manufList" value="#{manufacturerBean.selectedManufacturer}" > <f:selectItem itemLabel="New" itemValue="New" /> <f:selectItems value="#{manufacturerBean.manufacturerList}" /> <a4j:support action="#{manufacturerBean.loadManufacturerDetails}" event="onchange" reRender="t3,t4,t5,t6,t7,t8,t9,t10" /> </h:selectOneMenu>




Here is the backing bean

public List getManufacturerList(){ logger.info(" *** In getManufacturerList Backing Bean*** "); List<Manufacturer> models = new ArrayList<Manufacturer>(); List<SelectItem> manufacturers = new ArrayList<SelectItem>(); models = manufManager.getManufacturerList(); logger.info(" *** manufManager List Size=*** "+models.size()); for (Iterator it = models.iterator(); it.hasNext();) { Object[] row = (Object[]) it.next(); manufacturers.add(new SelectItem(row[0]+"",row[1]+"")); } return manufacturers; }





Any pointers/suggestions will be highly appreciated
Regards
Bansi
 
Ranch Hand
Posts: 57
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Bansilal Haudakari:
Here is my requirement

The user creates new record by selecting "New" value from the dropdown. Then user enters values on form fields and clicks the Submit button. The result is new Record gets created in the database and also gets populated in the dropdown. But the dropdown still shows the "New" value whereas I want the drop down to dynamically change from "New" to newly created value in the drop down

The dropdown is populated from the database as shown below

<h:outputText value="Manufacturer" /> <h:selectOneMenu id="manufList" value="#{manufacturerBean.selectedManufacturer}" > <f:selectItem itemLabel="New" itemValue="New" /> <f:selectItems value="#{manufacturerBean.manufacturerList}" /> <a4j:support action="#{manufacturerBean.loadManufacturerDetails}" event="onchange" reRender="t3,t4,t5,t6,t7,t8,t9,t10" /> </h:selectOneMenu>




Here is the backing bean

public List getManufacturerList(){ logger.info(" *** In getManufacturerList Backing Bean*** "); List<Manufacturer> models = new ArrayList<Manufacturer>(); List<SelectItem> manufacturers = new ArrayList<SelectItem>(); models = manufManager.getManufacturerList(); logger.info(" *** manufManager List Size=*** "+models.size()); for (Iterator it = models.iterator(); it.hasNext();) { Object[] row = (Object[]) it.next(); manufacturers.add(new SelectItem(row[0]+"",row[1]+"")); } return manufacturers; }





Any pointers/suggestions will be highly appreciated
Regards
Bansi



Bansi I think that you can do it filling again the list after the creation of the new record. Maybe if you post the code of your Bean it would be easier to help you.
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The f:selectItem value="New" will always select that item in the dropdown whatever value you entered. The "New" item need to be added as the first element in the backing bean when the manufacturerList is populated. And the variable selectedManufacturer has to be set the value of whatever needs to be displayed as default in the JSF dropdown. As Andres said it will be better if you could send the backing bean code.
 
reply
    Bookmark Topic Watch Topic
  • New Topic