2012-01-19 31 views
1

我试图将dojo 1.7 objectStore或itemFileWriteStore连接到网格,但我不知道我在做什么错误。将Dojo data.objectStore或data.ItemFileWriteStore连接到网格

当我使用ItemFileWriteStore运行我的代码时,我得到了网格标题,但没有看到我的数据。当我使用ObjectStore时,网格不存在。

我在做什么错?

UPDATE:刚才注意到,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();      }) 
       }) 
      } 
     ) 

回答

1

事实证明,商店没有正确填充数据。它建造的商店没有指明传递是不正确的格式

0

我想你可能在layout的定义中犯了一个错误。不应该第二个fieldcol2,就像你在dataBucket中定义的那样?

+0

它不是,我只是试图重命名,它仍然无法正常工作。我认为它与商店本身有关 – thiswayup

+0

尝试定义你的'布局',不包括'''',''''''''''''' '100px的'}'。它对我的网格起作用。 – maialithar

0

也是数据你已经写:

identifer: 'ID' 

,它的

identifier: 'ID' 
0

道场/存储/内存去内到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') 
        );