Passer le code de la touche du clavier enfoncé
Bonjour
je voudrais passer du coté serveur le code de la touche du clavier enfoncé pour faire un traitement.Voici le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<p:autoComplete id="#{id}numeroDepartement"
value="#{helper.departementRecherche}"
completeMethod="#{testDepartementHelper.completeDepartement}"
forceSelection="true" minQueryLength="0" maxResults="20"
var="testDepartement" itemLabel="#{testDepartement.shortString()}"
itemValue="#{testDepartement}" converter="#{testDepartementConverter}"
queryDelay="300" size="40"
disabled="#{!helper.choixDepartement}"
required="#{!helper.choixDepartement ? false : empty helper.listeDepartements}"
requiredMessage="recherche.departement.required"
widgetVar="testDepartementRecherche" onkeyup="document.getElementById('#{keyCode.clientId}').value=event.keyCode;">
<p:ajax event="itemSelect"
update="#{id}Recherche #{widgetVar}Panel"
process="#{widgetVar}Panel" />
<p:ajax event="keyup" execute="@this keyCode" listener="#{helper.action}" />
</p:autoComplete>
<h:inputHidden id="keyCode" binding="#{keyCode}" value="#{helper.keyCode}" /> |
Voici mon Bean de traitement du coté serveur (helper = testComparaisonHelper)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
@ManagedBean
@ViewScoped
public class TestComparaisonHelper implements Serializable {
/**
*
*/
private static final long serialVersionUID = -9129695073270590797L;
private int keyCode;
public int getKeyCode() {
return keyCode;
}
public void setKeyCode(int keyCode) {
this.keyCode = keyCode;
}
public void action() {
int i = 0;
switch (keyCode) {
case 13:
// Enter key was pressed.
break;
case 27:
// Escape key was pressed.
break;
default:
// Other key was pressed.
break;
}
} |
Il y a 2 choses qui ne vont pas
1) le setter de keyCode n'est jamais appelé
2) la méthode action n'est appelé qu'à la deuxième frappe du clavier
Merci d'avance pour votre aide.