2011-10-23 13 views
7

Zapełniam widget wyboru dijit z opcjami, gdy zmienia się wartość innego wybranego widgetu.Programowo ustaw wybraną wartość dijit Wybierz widżet

W mojej aplikacji jest rozwijane menu "Trasa autobusu" i rozwijane menu "Przystanek autobusowy". Użytkownicy mają przypisane trasy i przystanki autobusowe, które powinny być możliwe do aktualizacji.

Kiedy strona ładuje się po raz pierwszy, w liście rozwijanej trasy dostępne są wszystkie dostępne trasy, a trasa, do której jesteś aktualnie przypisana, jest wybraną wartością. Menu zatrzymania jest załadowane wszystkimi przystankami związanymi z tą trasą, ale nie ma wybranej wartości, więc domyślnie jest to pierwsza opcja.

Gdy użytkownik zmieni aktualnie wybraną trasę, menu zatrzymania odpowiednio się zmieni i zostanie wypełnione wszystkimi przystankami związanymi z tą trasą.

Moje pytanie brzmi, w jaki sposób w dojo ustawić opcję "Wybrane" w menu stop?

Chcę, aby było jasne, który przystanek jest obecnie przypisany do tego użytkownika, a nie "wybrany" jest pierwszą opcją na trasie.

Dzięki.

Odpowiedz

17
selectWidget.set("value", someValue); 

Jeśli określając opcje za pośrednictwem właściwości options (tablica obiektów z label, value, itd.), A następnie someValue powinna odpowiadać value jednego z tych obiektów. (Należy pamiętać, że można również określić selected: true rację w jednym z obiektów w tablicy przekazany do options).

przypadku dostarczania przedmiotów ze sklepu dojo.data za pośrednictwem właściwości store, następnie someValue powinna odpowiadać tożsamości jednego przedmiotów sklepu.

(edycja) UWAGA: Założono powyżej, że przez "widget wyboru dijit" masz na myśli dijit.form.Select. Jeśli faktycznie używasz dijit.form.ComboBox lub dijit.form.FilteringSelect, ten sam wiersz kodu nadal ma wartość true, tak jak ma to miejsce w przypadku sklepów w ostatnim akapicie. W przypadku deklaratywnego utworzenia z tagiem select, ComboBox i FilteringSelect nadal tworzą magazyn, którego tożsamości elementów są wartościami opcji w znaczniku select.

3
//With dojo version 1.9 
//search for the item in store dojo/store/Memory with the corresponding id value 
var objItem = store.get("1"); 
//set the combobox's item 
comboBox.set("item", objItem); 
+1

To było dokładnie to, czego szukałem! – GuyT

+0

Czy jest jakiś sposób, aby to działało z usuwaniem wartości? – streetlight

Powiązane problemy