Is it possible to have multiple events in the same p:ajax?
Something like this:
<p:ajax event="firstEvent,secondEvent..." listener="doSomething();" />
Faced with the same problem and came across this post. After trivial investigation, the "multiple events in the same p:ajax"-approach will not work. It is not supported at least for the tested Primefaces 5.3 version. An Exception like this will arise:
javax.faces.view.facelets.TagException: <p:ajax> Event:firstEvent,secondEvent is not supported.
Some source code from the AbstractBehaviorHandler
class:
ClientBehaviorHolder holder = (ClientBehaviorHolder) parent;
String eventName = getEventName();
if (null == eventName) {
eventName = holder.getDefaultEventName();
if (null == eventName) {
throw new TagException(this.tag, "Event attribute could not be determined: " + eventName);
}
} else {
Collection<String> eventNames = holder.getEventNames();
if (!eventNames.contains(eventName)) {
throw new TagException(this.tag, "Event:" + eventName + " is not supported.");
}
}
I know it's later but I found and way to do this, You only need to put N tags of p:ajax, i.e:
<p:calendar id="startDate" value="#{bean.date}"
pattern="dd.MM.yyyy"
validator="#{bean.checkDate}">
<p:ajax update="dialog:endDate" event="dateSelect" />
<p:ajax update="dialog:endDate" event="keyup" />
</p:calendar>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With