2010-02-01 3 views
2

J'ai une page jsp avec un dijit.form.ComboBox qui est rempli par un dojo.data.ItemFileReadStore se connectant à un backend java server. Cela fonctionne presque comme prévu, la liste déroulante montre les résultats de manière corrésente. Le problème est que je reçois un 'dojo.data.ItemFileReadStore: argument d'élément invalide.' lors du défilement dans une liste de résultats avec les touches fléchées du clavier. La sélection avec la souris fonctionne cependant bien.dojo.data.ItemFileReadStore: Argument d'élément non valide avec Dijit combobox

Dojo version 1.2.3

Voici comment je l'ai mis en place sur mon jsp:

<input type="text" id="value" 
dojoType="dijit.form.ComboBox" 
autoComplete="false" 
searchAttr="name" 
forceValidOption="true" 
hasDownArrow="false" 
onKeyUp="populateValue" 
/> 

<script type="text/javascript"> 
function populateValue() { 
    valueWidget = dijit.byId("value"); 
    var selectedValue = valueWidget.getValue(); 
    var url = "${contextPath}/someUrl?selectedValue=" + selectedValue + "%"; 
    store = new dojo.data.ItemFileReadStore({url:url}); 
    valueWidget.store = store; 
    return; 
    } 
</script> 

Voici le JSON que je reçois du serveur:

{"items":[ 
    {"name":"My string 1","label":"My string 1"}, 
    {"name":"My string 2","label":"My string 2"}, 
    {"name":"Mev.","label":"Mev."}], 
"identifier":"name"} 

Une idée de ce qui ne va pas ici?

Répondre

2

Résolu. Le problème semblait être l'événement onKeyUp sur la liste déroulante. Quand j'ai changé cela en onKeyPress, le fait de fléchir la liste ne donne plus d'erreurs.

Comparé à onKeyUp, onKeyPress me donne en fait un retard d'un caractère car l'événement est déclenché quand le caractère n'est pas déjà tapé. Une idée de comment je pourrais surmonter cela?

+0

Merci! Il l'a résolu. Mais pourquoi cela n'est pas compris –

+0

@NeelBasu Avez-vous enfin résolu le problème? Avez-vous trouvé la raison? – MockerTim

+0

bien c'est une histoire de 2 ans et je ne me souviens pas de ce que j'essayais de faire :) –

Questions connexes