2014-03-25 2 views
8

Ich habe eine Frage zu einem Primefaces-Autocomplete. Rigth jetzt i mit dem Wert einer Eigenschaft des gewählten Wertes in der die automatische Vervollständigung ein Feld am aktualisieren, wie folgt aus:Capture Primzahlen <p: autoComplete> Ereignis ändern (Leerung erkennen)

Dies ist in meinem xhtml:

<p:autoComplete 
    value="#{trFitoModel.selectedProducte}" 
    id="nomComercial" 
    completeMethod="#{trFitoBacking.completeProducte}" 
    var="producte" itemLabel="#{producte.nom}" 
    itemValue="#{producte}" converter="#{ProducteFitoConverter}" 
    forceSelection="true" 
    onkeyup="this.value = this.value.toUpperCase();"> 
    <p:ajax event="itemSelect" 
     listener="#{trFitoBacking.handleSelect}" 
     update="text" global="false" /> 
    <f:validator validatorId="qea.validators.EmptyFieldValidator" /> 
    <f:attribute name="validationTitle" value=" NomComercial " /> 
</p:autoComplete> 
</p:column> 
<p:column> 
    <h:outputLabel>#{msgI18N.trFito}</h:outputLabel> 
    <h:outputText id="text" 
     value="#{traFitoBacking.resgistre}"> 
    </h:outputText> 
</p:column>  

Und das ist mein Backing Bean:

Das funktioniert, aber jetzt versuche ich den outputText mit ID "Text" mit einem leeren String zu aktualisieren, wenn der Wert der Autovervollständigung leer ist.

Wie kann ich das ausgelöste Ereignis erfassen, wenn p:autoComplete geleert wird?

Antwort

18

Primefaces autoComplete generiert 2 Ereignisse: "change" und "itemSelect", für 2 Methoden zum Ändern des Inhalts: Eingabe oder Auswahl aus der Dropdown-Liste. Sie müssen also 2 p:ajax Zuhörer registrieren:

<p:autoComplete ... > 
    <p:ajax event="itemSelect" listener="#{bean.action}" process="@form"/> 
    <p:ajax event="change" listener="#{bean.action}" process="@form"/> 
</p:autoComplete>  

Sie werden auch Signatur 2. Server-Methode müssen:

public void action(AjaxBehaviorEvent event) 

für die Erfassung 'Veränderung' Ereignis.

Statt event können Sie onstart Attribut mit JavaScript verwenden, laufen ... Weitere Optionen für p:ajax Sie in Primefaces Users Guide, Abschnitt „AjaxBehavior“ finden.

+0

danke für Hilfe! –