2011-10-23 50 views
7

每當另一個選擇小部件的值發生更改時,我將使用選項填充dijit選擇小部件。以編程方式設置dijit選擇小部件的選定值

在我的應用程序中,「巴士路線」下拉菜單和「巴士站」下拉菜單。 用戶已經分配了應該可更新的公交路線和停靠站。

因此,當頁面第一次加載時,路由下拉框中包含所有可用的路由,並且您當前分配給的路由是選定的值。停止菜單加載了與該路線相關的所有停靠點,但沒有選定的值,因此,默認情況下,它是第一個選項。

每當用戶更改當前選定的路線時,停止菜單都會相應地改變,並且會使用與該路線相關聯的所有停靠點進行填充。

我的問題是,用dojo,我怎樣才能在停止菜單中設置「選定」選項?

我希望它是明確其停止當前分配給該用戶,而不是「選擇」不再是路由中的第一個選項。

謝謝。

回答

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

如果指定經由options屬性選項(對象陣列labelvalue等),然後someValue應匹配這些對象中的一個的value。 (請注意,您也可以內傳遞給options數組中的對象之一指定權selected: true。)

如果您通過store財產提供從dojo.data存儲物品,然後someValue應該匹配一個身份的商店物品。

(編輯)注:我上面假設的「dijit的選擇窗口小部件」你指的是dijit.form.Select。如果您實際使用的是dijit.form.ComboBoxdijit.form.FilteringSelect,則同一行代碼仍然適用於最後一段中的商店。在使用select標籤聲明性實例化的情況下,ComboBox和FilteringSelect仍會創建商店,其商品的標識是選擇標籤中選項的值。

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

這正是我一直在尋找! – GuyT

+0

有沒有辦法讓它與清除值一起工作呢? – streetlight

相關問題