我正在尝试将dojo 1.7 objectStore或itemFileWriteStore连接到网格,但我不确定我做错了什么。
当我使用ItemFileWriteStore运行我的代码时,我得到网格标题,但我没有看到我的数据。当我使用ObjectStore时,网格不存在。
我做错了什么?
更新:刚注意到store.data属性为空。必须意味着我的“dataBucket”的格式可能是错误的?
require(['dojo/on'
,'dojo/ready'
,'dojo/dom'
,"dojo/data/ObjectStore"
,"dojo/store/Memory"
,"dojox/grid/DataGrid"
,"dojo/data/ItemFileWriteStore"
],
function (on,ready,dom,objStore,memStore,grid,itemStore){
ready(function(){
var dataBucket = {//idProperty: 'ID', //for object store?
identifer: 'ID', //for itemStore
items : [
{ID : '100', col2 : 'Ciao Ciao'},
{ID : '200', col2 : 'Hello'}
]};
var stuff = new itemStore({data : dataBucket});
//var stuff = new objStore({store : dataBucket});
//var stuff = new memStore({data : dataBucket});
var layout = [[
{'name':'ID','field' : 'ID','width' : '100px'},
{'name':'Stuff','field' : 'col2','width' : '100px'}
]];
var myGrid = new grid({
id: 'grid',
store: stuff,
structure: layout,
rowSelector: '20px'},
document.createElement('div')
);
dojo.byId("bottomPane").appendChild(myGrid.domNode);
myGrid.startup(); })
})
}
)
答案 0 :(得分:1)
事实证明商店没有正确填充数据。它构建了一个商店,但没有指出传入的数据格式不正确
答案 1 :(得分:0)
我认为你可能在layout
定义中犯了一个错误。不应该像你在field
中定义的那样col2
dataBucket
秒?
答案 2 :(得分:0)
identifer: 'ID'
而且是
identifier: 'ID'
答案 3 :(得分:0)
dojo / store / Memory转到dojo / store / ObjectStore内部
stuff = new ObjectStore({ objectStore:new Memory({ data: dataBucket }) });
和网格的商店属性
var myGrid = new grid({
id: 'grid',
store: stuff,
structure: layout,
rowSelector: '20px'},
document.createElement('div')
);