Dojo:来自JsonRest商店的DataGrid

时间:2012-04-12 14:09:01

标签: dojo

我正在尝试按照这里的教程:

http://dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/

教程写道:

require(["dojo/store/JsonRest"], function(JsonRest){
myStore = new JsonRest({target:"MyData/"});

我的MyData.json文件放在ROOT \ MyData中。如果我运行以下代码

...
<script>
var myStore, dataStore, grid;
require(["dojo/store/JsonRest"], function(JsonRest){
    myStore = new JsonRest({target:"MyData/"});
});

require(["dojox/grid/DataGrid",
         "dojo/data/ObjectStore",
         "dojo/domReady!"
], function(DataGrid, ObjectStore){
        grid = new DataGrid({
        store: dataStore = ObjectStore({objectStore: myStore}),
        structure: [
            {name:"State Name", field:"name", width: "200px"},
            {name:"Abbreviation", field:"abbreviation", width: "200px"}
        ]
        }, "target-node-id"); // make sure you have a target HTML element with this id
        grid.startup();
});
</script>
...

如果我输入“MyData /”并且416(请求范围不满足),如果我输入“MyData / MyData.json”,则数据会出现404错误。

我知道这是完全愚蠢的事情,因为我找不到任何人有同样的问题,但我无法看到解决方案:/

致以最诚挚的问候,谢谢你的帮助!

安德烈亚斯

1 个答案:

答案 0 :(得分:1)

好的,所提供的数据不足以确定问题是什么,但找不到404。

所以:

  1. 确保您可以通过浏览器轻松访问json文件。
  2. 如果您这样做,请在 {target:“http:// URL”} 中使用此网址,这应该可行。
  3. 请记住,在dojo.store.JsonRest目标选项 {target:“relative或absolute”} 中,如果使用相对路径,它将查看已执行脚本的路径。
  4. E.g。如果您的网格脚本位于 http:// localhost / grid / 中,则JsonRest将相对于此路径显示。对于目标 {target:“MyData.json”} ,它将在 http://localhost/grid/MyData.json 中查找,而不是找到它,如果它在哪里 HTTP://localhost/MyData.json

    如果你还是不能再解决这个帖子!!