'onchange' event in a a4j:support for a h:selectOneMenu in a
ronanker May 2, 2008 8:14 AMHi richfaces guys,
As in one of my previous post, I can't make a4:support working as expected for a selectOneMenu in a datatable. Whatever the selected row, it is always the first one that is updated.
Here is the jsp page code snippet to reproduce this.
<h:form id="form">
<rich:dataTable value="#{testBean.list}" var="item" id="table">
<rich:column>
<h:selectOneMenu value="#{item.value}"
id="selectOneMenu" >
<a4j:support
ajaxSingle="true" event="onclick" reRender="input, output"/>
<f:selectItems value="#{testBean.values}"/>
</h:selectOneMenu>
</rich:column>
<rich:column>
<h:inputText id="input" value="#{item.value}">
<a4j:support ajaxSingle="true" event="onchange"
reRender="selectOneMenu, output"/>
</h:inputText>
</rich:column>
<rich:column >
<h:outputText id="output" value="#{item.value}"/>
</rich:column>
</rich:dataTable>
</h:form>The TestBean code :
public class TestBean {
private List<BeanKeyValue> list = new ArrayList<BeanKeyValue>();
private List<SelectItem> values = new ArrayList<SelectItem>();
public TestHandler() {
list.add(new BeanKeyValue("1","1"));
list.add(new BeanKeyValue("2","2" ));
list.add(new BeanKeyValue("3","3"));
list.add(new BeanKeyValue("4","4"));
list.add(new BeanKeyValue("5","5"));
values.add(new SelectItem("1", "1"));
values.add(new SelectItem("2", "2"));
values.add(new SelectItem("3", "3"));
values.add(new SelectItem("4", "4"));
values.add(new SelectItem("5", "5"));
}
public List<BeanKeyValue> getList() {
return list;
}
public void setList(List<BeanKeyValue> list) {
this.list = list;
}
public List getValues() {
return values;
}
}The TestBean can be in session or in request scope.
When I update the value with the inputText, my page is correctly updated (selectOneMenu and output are rerendered).
When I update the value with the SelectOneMenu, my page is updated (input and output are NOT rerendered).
We can see the following in the sent ajax request:
onchange on the inputText:
ajaxSingle=form%3Atable%3A3%3Ainput
onchange on the selectOneMenu:
ajaxSingle=form%3Atable%3A0%3AselectOneMenu&
onclick on the selectOneMenu:
ajaxSingle=form%3Atable%3A3%3AselectOneMenu&
I have the same problem with an inputText with a 'onchange' a4j:support but in a rich:subtable.
Thanks for your help.