ajax - Primefaces autocomplete (multiple), handle prepopulated items -
i have simple autocomplete (multiple) component (similar 1 in pf showcase), allowing users select items dropdown list, , commandbutton save values database.
@postconstruct method fetches data , prepopulates them (if found) in autocomplete component.
the problem component seems have no control prepopulated items. example, if delete 1 clicking close icon, disappears page, event object in neither valuechangelistener, selecteventlistener (ajax itemselect), nor unselecteventlistener (ajax unselect) returns correct value, instead return null. can add new item(s) or delete new added item(s). if delete 1 of prepopulated items, , click save, other prepopulated items gone.
how handle (delete) prepopulated items in autocomplete ?
pf version 5.2 bean.java
private list<someobjs> selectedsomeobjs = new arraylist<>(); @postconstruct public void init() { this.selectedsomeobjs = somedb.getsavedsomeobjs(); } public void valuechange(valuechangeevent event) { object oldval = event.getoldvalue(); // return prepopulated items object newval = event.getnewvalue(); // return null, if delete 1 of prepupulated items } .xhtml
<p:autocomplete id="auto" multiple="true" value="#{bean.selectedsomeobjs}" completemethod="#{bean.autocomplete}" var="v" itemlabel="#{v.desc}" itemvalue="#{v}" autocomplete="true" maxresults="15" minquerylength="1" querydelay="100" forceselection="true" cache="true" valuechangelistener="#{bean.valuechange}"> <o:converter converterid="omnifaces.listconverter" list="#{bean.objslist}"/> <p:ajax event="itemunselect" listener="#{bean.selectlistener}"/> <p:ajax event="itemselect" listener="#{bean.unselectlistener}"/> </p:autocomplete>
Comments
Post a Comment