2010-11-29 34 views
1

Je reçois la touche de chaque mot et j'ai besoin de faire un autosuggest dans une zone de liste déroulante. Mon code est le suivant:quoi de mal dans mon code zkoss

<zk> 
    <window border="normal" apply="org.test.test" id="win" > 
    <combobox id="combo" autodrop="true"/> 
    </window> 
</zk> 


Le :

public class test extends GenericForwardComposer{ 
    Combobox combo; //ZK Auto Wired , use combo directly 

    public void onChanging$combo() { // ZK Autoforward (Awesome !!) 
    suggest(); 
    } 

    public void suggest() { 
    System.out.println(combo.getText()); 
    combo.getItems().clear(); 
    combo.appendItem("Ace"); 
    combo.appendItem("Ajax"); 
    combo.appendItem("Apple"); 
    combo.appendItem("Best"); 
    combo.appendItem("Blog"); 
    } 

} 

Ce n'imprime pas la première clé quand j'appuie sur une touche. Puis-je obtenir de l'aide pour savoir pourquoi?

Répondre

1

Lorsque onChanging est reçu, la valeur de la zone de liste déroulante n'est pas encore modifiée. Vous devez obtenir la valeur de l'événement

public void onChanging$como(InputEvent event) { 
    event.getValue(); //<- the value of combobox being entered so far 
+0

vous m'avez sauvé la vie ... merci – ramu