如何在Dijit.form.FilteringSelect中预选第一个元素?

时间:2012-09-28 11:53:43

标签: javascript dojo

我有Dijit.form.FilteringSelect,它从下拉列表的Web服务内容动态加载。

我想预先选择第一个元素。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

这取决于您的实施。

如果您先加载数据,然后创建dojo/store/Memory,然后输入dijit/form/FilteringSelect

// sync only for dojo/store/Memory
var store = filteringSelect1.store;
filteringSelect1.set("value", store.getIdentity(store.data[0]));

更强大的同步或异步方式是查询商店:

when(store.query(function(item, index, items) {
    return index == 0;
}), function(results) {
    filteringSelect2.set("value", store.getIdentity(results[0]));
});

请参阅jsFiddle中的这两个示例:http://jsfiddle.net/phusick/DaA3a/

如果您的filteringSelectdojo/store/JsonRest备份,则您的REST服务必须支持index查询(除了id查询):

restStore.query({ index: 0 }).then(function(item) {
    filteringSelect1.set("value", restStore.getIdentity(item));  
});

在jsFiddle上查看更复杂的示例(通过sinon.js fakeServer模拟这样的REST服务):http://jsfiddle.net/phusick/pGt5n/