2017-08-23 3 views
0

J'ai essayé de créer un jsfiddle très simple pour tester un OnDemandList (sitepen/dgrid). Mais il ne rend pas de lignes. Est-ce que quelqu'un a une idée de ce que j'ai fait de mal? Est-ce qu'un simple dstore/Memory n'offre pas de méthodes comme fetchRange? Le jsFiddle se trouve ici: http://jsfiddle.net/rbeqqr2g/25/Comment manipuler un OnDemandList facile (dgrid)?

require({ 
    packages: [ 
     { 
      name: 'dgrid', 
      location: '//cdn.rawgit.com/SitePen/dgrid/v0.3.16' 
     }, 
     { 
      name: 'xstyle', 
      location: '//cdn.rawgit.com/kriszyp/xstyle/v0.2.1' 
     }, 
     { 
      name: 'put-selector', 
      location: '//cdn.rawgit.com/kriszyp/put-selector/v0.3.5' 
     }, 
     { 
      name: 'dstore', 
      location: '//cdn.rawgit.com/SitePen/dstore/master' 
     } 
    ] 
}, [ 
    'dgrid/OnDemandList', 
    'dstore/Memory', 
    'dojo/dom', 
], function(OnDemandList, Memory, dom) { 
    var data = [ 
     { id: 1, name: 'Peter' }, 
     { id: 2, name: 'Paul' }, 
     { id: 3, name: 'Mary' } 
    ]; 
    var store = new Memory({ 
     data: data 
    }); 
    var list = new OnDemandList({ 
     collection: store, 
     minRowsPerPage: 5, 
     noDataMessage: "Keine Daten vorhanden", 
     renderRow: function (object, options) { 
      console.log("Zeile wurde gerendert.") 
      var div = document.createElement('div'); 
      div.appendChild(document.createTextNode(object.name)); 
      return div; 
     } 
    }, dom.byId('list')); 
    list.startup(); 
}); 

Répondre

1

Vous utilisez la plus récente dStore, mais un vieux dgrid. Les versions 1.x de < de dgrid ne supportaient pas dstore, vous pouvez utiliser un dojo/store/Memory normal à la place. En dgrid < 1.x, vous avez également besoin d'une propriété store au lieu de collection.

require({ 
    ... 
}, [ 
    'dgrid/OnDemandList', 
    //'dstore/Memory', 
    'dojo/store/Memory', // < --- regular dojo/store 
    'dojo/dom', 
], function(OnDemandList, Memory, dom) { 
    ... 
    ... 
    var list = new OnDemandList({ 
     //collection: store, 
     store: store,  // <--- store property 
     ... 
    }, dom.byId('list')); 
    list.startup(); 
}); 

http://jsfiddle.net/rbeqqr2g/28/

Sinon, à moins que vous êtes coincé avec 0.3.x dgrid, vous pouvez également utiliser simplement le dgrid moderne:

{ 
    name: 'dgrid', 
    location: '//cdn.rawgit.com/SitePen/dgrid/v1.1.0' 
    //location: '//cdn.rawgit.com/SitePen/dgrid/v0.3.16' 
}, 
+0

merci beaucoup pour la réponse détaillée! – ikorni