<p:autocomplete> JPA con eventos

Pasos:

  • crear el método ​ complete()

public List<Nivel6> complete(String query) {  
        List<Nivel6> suggestions = new ArrayList<>();  
showAll();
        for(Nivel6 p : nivel6List) {  
            if(p.getIdnivel6().startsWith(query))  
                suggestions.add(p);  
        }  

        return suggestions;  
    } 
}
  • crear método ​ handleSelect()

  public void handleSelect(SelectEvent event) {  
          FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Selected:" + selected.getNombre(), null);  

    FacesContext.getCurrentInstance().addMessage(null, message);  
}

PAGINA SIN CONTROLAR EL EVENTO

<p:outputLabel value="#{msg.idnivel6}" for="idnivel6" />
            <p:autoComplete value="#{nivel6SearchController.selected}" id="basicPojo" 
                                                  completeMethod="#{nivel6SearchController.complete}"  
                        var="p" itemLabel="#{p.idnivel6}" itemValue="#{p}" converter="nivel6Converter" forceSelection="true"/>

CONTROLANDO EL EVENTO

 <p:outputLabel value="#{msg.idnivel6}" for="idnivel6" />
                                <p:autoComplete value="#{nivel6SearchController.selected}"  
                                                completeMethod="#{nivel6SearchController.complete}"  
                                                var="p" itemLabel="#{p.idnivel6}" itemValue="#{p}" converter="nivel6Converter" forceSelection="true"> 
                                    <p:ajax event="itemSelect" listener="#{nivel6SearchController.handleSelect}" update=":form:growl" />  
                                </p:autoComplete>

MOSTRAR DOS COLUMNAS

          <p:autoComplete value="#{nivel6SearchController.selected}"  
                                                completeMethod="#{nivel6SearchController.complete}"  
                                                var="p" itemLabel="#{p.idnivel6} #{p.nombre}" itemValue="#{p}" converter="nivel6Converter" forceSelection="true"> 
                                    <p:ajax event="itemSelect" listener="#{nivel6SearchController.handleSelect}" update=":form:growl" />  
                                </p:autoComplete>

Last updated