2012-01-19 13 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

データは正しく格納されていません。

identifer: 'ID' 

、それは道場/店舗/メモリーにインナー行く

identifier: 'ID' 
0

あなたはlayoutの定義で間違いをした可能性があります。あなたのdataBucketで定義したように、fieldcol2となりますか?

+0

私はちょうど名前を変更しようとしましたが、それはまだ動作しません。私は店そのものと何か関係があると思います – thiswayup

+0

'name'、' field'と 'ID'を囲む' ''を使わずに 'layout'を定義しようとします:' {name: 'ID'、field: 'ID' '100px'} '私のグリッドではこのように動作します。 – maialithar

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') 
        ); 
0

だ:それはまた、あなたが書き込みをした間違ったフォーマット

関連する問題