2 Stimmen

Dojo.data.ItemFileReadStore: Ungültiges Elementargument mit Dijit-Kombinationsfeld

Ich habe eine JSP-Seite mit einem dijit.form.ComboBox, der von einem dojo.data.ItemFileReadStore gefüllt wird, der mit einem Java-Backend-Server verbunden ist. Es funktioniert fast wie erwartet, der Combobox zeigt die Ergebnisse korrekt an. Das Problem ist, dass ich eine 'dojo.data.ItemFileReadStore: Ungültiges Elementargument' erhalte, wenn ich mit den Pfeiltasten auf der Tastatur in einer Ergebnisliste blättere. Die Auswahl mit der Maus funktioniert jedoch einwandfrei.

Dojo-Version ist 1.2.3

So habe ich es auf meiner JSP-Seite eingerichtet:

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;
    }

Hier ist das JSON, das ich vom Server erhalte:

{"items":[
    {"name":"Mein String 1","label":"Mein String 1"},
    {"name":"Mein String 2","label":"Mein String 2"},
    {"name":"Mev.","label":"Mev."}],
"identifier":"name"}

Irgendwelche Ideen, was hier schief läuft?

2voto

gbuys Punkte 245

Gelöst. Das Problem schien das onKeyUp-Ereignis auf der Kombinationsfeld zu sein. Als ich dies auf onKeyPress geändert habe, treten keine Fehler mehr auf, wenn ich die Liste nach unten durchgehe.

Verglichen mit onKeyUp gibt mir onKeyPress tatsächlich eine Verzögerung von einem Zeichen, da das Ereignis ausgelöst wird, wenn das Zeichen noch nicht wirklich getippt ist. Irgendwelche Ideen, wie ich das überwinden könnte?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X