我正在尝试以编程方式创建一个Dojo dojox.grid.DataGrid
。它正在创建但不显示输出,而是显示错误消息:"抱歉,发生错误"
以下是代码:
var info=[
{
"Propery":"key1","Value":"value1"},
{
"Property":"key2", "Value":"value2"},
{
"Property":"key3","Value":"value3"}
];
var layout = [
{
name: "Property",
field: 'Property',
width: "180px"},
{
name: "Value",
field: 'Value',
width: "180px"}
];
var myStore = new dojo.data.ItemFileReadStore({data:{items:info}});
var grid = new dojox.grid.DataGrid({
store: myStore,
structure: layout
},"myDiv");
grid.startup();
我不知道哪里出错了,请帮帮我。
答案 0 :(得分:1)
老兄,这就像我第三次回答你的问题。它之前强烈提醒我两个,但无论如何我都会尝试。
您的示例无效,因为在您的layout
- 变量中,您引用的field
名为'属性',data.items
中不存在info
json
})。
你也没有得到array
- keys
权利的概念。它可以像一堆具有非常相似结构的物体。假设你想存储一些人,那么你会有一些json
喜欢名字,姓氏,年龄,性别等。每个人都有不同的价值观。 array
- var people = [
{
firstname: 'maja',
lastname: 'van hinten'
age: 23
gender: 'w'},
{
firstname: 'willy',
lastname: 'wantstoknowit'
age: 11
gender: 'm'},
{
firstname: 'helmut',
lastname: 'kohl'
age: 101
gender: 'm'},
];
看起来像这样:
properties
请注意,object
的名称相似,只是值不同。
您尝试做的事情显然是将一个array
存储为object
,并使每个属性为[]
。考虑一下:array
表示{}
,object
表示JavaScript中的info
。
事实上,您的 var info = [
{
"key1": "value1",
"key2": "value2",
"key3": "value3"}
];
- 变量应如下所示:
var info = [
{
"key1": "value1",
"key2": "value2",
"key3": "value3"},
{
"key1": "value4",
"key2": "value5",
"key3": "value6"},
{
"key1": "value7",
"key2": "value8",
"key3": "value9"}
];
如果您想存储更多对象,它将如下所示:
object
... array
存储在layout var
中。就那么简单。
现在转到structure
:
它应该记录DataGrid
store
与其 var layout = [
{
name: "Key1's content", // you can name this whatever you want
field: 'key1', // but not this, it refers to the property name of your objects
width: "180px"},
{
name: "Key2's content", // this could be named randomly too of course
field: "key2",
width: "180px"},
{
name: "Key3's content", // and that one as well
field: "key3",
width: "180px"}
];
给出的数据相关的{{1}}。所以它描述了整个列,而不是单个单元格。
因此,您只能引用属性名称(key1,key2,key3或firstname,lastname,age,gender),但不能引用值,因为有时可能会有所不同。您只知道对象的结构,而不是实际内容。
因此,看起来应该是这样的:
{{1}}
答案 1 :(得分:0)
不确定这是否有帮助,但在您发布的示例代码中,您在其中一个项目中拼错了“属性”一词,而其他两个项目拼写正确拼写了“属性”一词。请参阅具有属性key1的项目。您必须确保所有字段名称拼写一致。