You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Rodrigo ILO (OSV)" <ri...@fedex.com> on 2009/10/05 11:35:54 UTC

selectOneChoice, valueChangeListener and partialTriggers

Hi All.

 

I want to auto-populate a set of fields depending on a dropdown menu.

This is my dropdown menu.

 

<tr:selectOneChoice id="populatedFromContactId"
value="#{shipmentForm.shipmentModel.shipment.shipperAddress.populatedFro
mContactId}" valueChangeListener="#{shipmentForm.addressChangeListener}"
autoSubmit="true">

 <f:selectItem itemLabel="#{msgs.Select_Label}" itemValue="" />

 <f:selectItems value="#{shipmentForm.senderIds}" var="selectItem"
itemLabel="#{selectItem.label}" itemValue="#{selectItem.value}" />

 </tr:selectOneChoice>

 

This is one of my input fields that I want to be populated.

 

<tr:inputText id="name"
value="#{shipmentForm.shipmentModel.shipment.shipperAddress.name}"
partialTriggers="populatedFromContactId"/>

 

This is the method called when dropdown value is changed.

 

public void addressChangeListener(ValueChangeEvent valueChangeEvent) {

            FacesContext facesContext =
FacesContext.getCurrentInstance();

            UIViewRoot uiViewRoot = facesContext.getViewRoot();

 

            String tmpName = "";

 

            String newSenderId = (String)
valueChangeEvent.getNewValue();

 

            AddressBook addressBook = (AddressBook) lookupService

                        .getEntityById(AddressBook.class, new
Long(newSenderId));

 

            tmpName = addressBook.getName();

 

            // set new Name               

UIInput inputText = (UIInput) uiViewRoot

                        .findComponent("shipmentForm:name");

            inputText.setValue(tmpName);

            inputText.setSubmittedValue(tmpName);

 

            facesContext.renderResponse();            }

      }

 

The method was called when the dropdown value changed but the input text
value was not updated.

How do I update the input text value?

 

Thanks!

Igo