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