以编程方式创建 Dojo DataGrid:“抱歉,发生错误。”布局问题?

Posted

技术标签:

【中文标题】以编程方式创建 Dojo DataGrid:“抱歉,发生错误。”布局问题?【英文标题】:Programmatically creating a Dojo DataGrid: "Sorry, an error occurred." Layout issue? 【发布时间】:2011-10-26 15:23:12 【问题描述】:

我正在尝试使用从 Web 服务中检索到的一些数据创建一个 DataGrid。在经历了很多痛苦之后,我意识到问题不在于数据,也不在于服务。我能够以声明方式创建 DataGrid,但我需要以编程方式进行,因为我将在更复杂的场景中进行。

我从一个复杂的用例变成了一个非常简单的用例,但它仍然失败。 我看到的只是 DataGrid,但带有经典的“抱歉,发生错误”错误。

 +----------+----------------------------+
 | id       | name                       |
 +----------+----------------------------+
 |      Sorry, an error occurred         |
 |                                       |

这是我的简化示例:

<html>
<head>
<link rel="stylesheet" href="MyCSS.css">
<script type="text/javascript" src="lib/dojo/dojo.js" charset="utf-8"></script>
<script>
    dojo.require("dojo.data.ItemFileReadStore");
    dojo.require("dojox.grid.DataGrid");
</script>
</head>

<body class="soria">
    <div id="node" style="width:650px;height:300px"></div>
    <script>
        var structure = [
            field: "id", width: 20,
            field: "name", width: 100
        ];

        var data = [
            "id": 1, "name": "John",
            "id": 2, "name": "Lucy"
        ];

        var node = dojo.byId("node");
        var store = new dojo.data.ItemFileReadStore(
            data: data
        );
        var grid = new dojox.grid.DataGrid(
            store: store,
            structure: structure
        ,
        document.createElement('div'));

        node.appendChild(grid.domNode);
        grid.startup();
    </script>
</body>
</html>

我希望我错过了一些非常愚蠢的东西。控制台不显示错误。

有什么建议吗?

【问题讨论】:

【参考方案1】:

问题是数据存储需要不同的格式:

 var store = new dojo.data.ItemFileReadStore(
  data: items: data
 );

这样就解决了问题。

【讨论】:

以上是关于以编程方式创建 Dojo DataGrid:“抱歉,发生错误。”布局问题?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在 Dojo Datagrid 中自定义列排序

以声明方式对 Dojo DataGrid 进行排序

Dojo Datagrid - 以编程方式设置选定行的样式

dojo中以编程方式与以声明方式创建的小部件之间的区别?

Dojo 以编程方式验证 TextBox

以编程方式为 DataGrid 创建 WPF DataGridTemplateColumn