【发布时间】:2011-12-29 18:48:27
【问题描述】:
我已成功设置我的 FilteringSelect 以使用 JsonRest 存储动态查询我的服务器以获取项目。我的问题是当我尝试初始设置具有特定值的下拉列表时。
<div id="ddThings"></div> <script type="文本/javascript"> dojo.ready(function () { var storeThings = new dojo.store.JsonRest({ target: "/Things/" }); var ddThings = new dijit.form.FilteringSelect({ 名称:“事物标识”, searchAttr: "名称", 自动完成:真, 值:“5”, missingMessage: "这是必需的", placeHolder: "选择一个东西", 商店:dojo.data.ObjectStore({ objectStore:storeThings }) }, "ddThings"); ddThings.startup(); //ddThings.set("值", "5"); });当我将值设置为“5”或使用 ddThings.set 时,我可以看到过滤选择查询我的服务器并传入一个“id”值。我返回一个包含单个项目的东西集合。我希望它用我返回的项目填充过滤选择。但是,什么都没有发生。
返回的 JSON 如下所示
[ { "id":"5", “名称”:“示例” } ]一个有趣的提示是,如果我将“displayedValue”设置为“Example”(无论名称是什么),那么我可以看到它到达服务器,找到匹配项并将其返回,它实际上会使用匹配项填充下拉列表。我想要这种行为,但使用项目的值/ID,而不是它的显示/名称。
【问题讨论】:
-
我对@987654321@ 不是很熟悉,它的期望不一定有据可查,但我敢打赌,它不会期望对特定 ID 的查询返回一个数组.你试过只返回一个对象吗?
-
肯,你真是个天才!就是这样!我从没想过要返回单个实体,因为通常我将 JsonRest 存储与始终需要集合的 Grid 一起使用。我会给你机会把它写下来作为获得荣誉的答案。
标签: javascript json dojo