如何控制Dojo FilteringSelect默认渲染?

时间:2010-03-22 00:34:49

标签: javascript ajax dojo

我有一个dojo dijit.filering.select,它填充了dojo.data.ItemFileReadStore中的值。 一切都工作正常,除了我希望过滤选择自动填充itemFileReadStore中的第一个值。目前它正在加载它们作为按照规范单击向下箭头时显示的选项列表。我想改为filterSelect加载第一个值。我该怎么做呢?出于某种原因,我无法弄明白。任何帮助都将非常感激!

亲切的问候 尼克弗兰德森

<script type="text/javascript">
        function updateOptions(){
            var itemId = dijit.byId("item_select").attr("value");
            var jsonStore = new dojo.data.ItemFileReadStore({ url: "/options/get-options-json/itemId/" + itemId });
            optionSelect.attr("store", jsonStore);
        }
</script>
<select dojoType="dijit.form.FilteringSelect"
        name="option_select"
        id="option_select"
        labelAttr="name"
        required="true"
        jsId="optionSelect">
</select>

2 个答案:

答案 0 :(得分:1)

对我来说有一种黑客的感觉(更不用说你有点迟了)但是我这样做是为了达到同样的目的:

var valueSet = false;
filteringSelect.store.fetch({
    query:{ id:"*" },
    onItem : function(item, request) {
        if (!valueSet) {
            filteringSelect.setValue(request.store.getValue(item, "id"));
            valueSet = true;
        }
    }
});

答案 1 :(得分:0)

这可能有效:

optionSelect.attr('displayedValue', itemLabel);

其中itemLabel是您希望显示的项目的标签(取决于您的数据存储在内部的样子)。这应该设置文本框内容和隐藏字段(使用相应的itemValue)。