2010-05-27 4 views
0

je la JS suivante:Extjs DataView problème ArrayStore

http://monobin.com/__m1c171c4e

et le code suivant:

code:

var tpl = new Ext.XTemplate(
    '<tpl for=".">', 
     '<div class="thumb-wrap" id="{Name}">', 
     '<div class="thumb"><img src="{ImageMedium}" title="{Name}"></div>', 
     '<span class="x-editable">{Name}</span></div>', 
    '</tpl>', 
    '<div class="x-clear"></div>' 
); 

var store = new Ext.data.ArrayStore({ 
    fields: [{ name: 'name' }, { name: 'ImageMedium'}], 
    data: res.data.SimilarArtists 
}); 

var panel = new Ext.Panel({ 
    frame: true, 
    width: 535, 
    autoHeight: true, 
    collapsible: true, 
    layout: 'fit', 
    title: 'Simple DataView (0 items selected)', 
    items: new Ext.DataView({ 
     store: store, 
     tpl: tpl, 
     autoHeight: true, 
     multiSelect: true, 
     overClass: 'x-view-over', 
     itemSelector: 'div.thumb-wrap', 
     emptyText: 'No images to display', 
     prepareData: function (data) { 
      data.Name = Ext.util.Format.ellipsis(data.Name, 15); 
      return data; 
     }, 

     plugins: [ 
      new Ext.DataView.DragSelector(), 
      new Ext.DataView.LabelEditor({ dataIndex: 'name' }) 
     ], 

     listeners: { 
      selectionchange: { 
       fn: function (dv, nodes) { 

       } 
      } 
     } 
    }) 
}); 

de reliure DataView au tableau des enfants de res .data.SimilarArtists

Mais rien ne se voit ms arriver?

prepareData n'est même pas appelé?

Qu'est-ce que je fais de mal?

w: //

Répondre

2

La structure de données que vous avez lié à JSON est, non pas des données du tableau. Essayez de passer à un JsonStore à la place. Notez qu'un JsonStore est préconfiguré avec un JsonReader et un HttpProxy (source de données distante) et est destiné à charger les données d'une URL. Si vous avez besoin de JSON chargé à partir de données locales, vous devrez créer un magasin générique avec JsonReader et MemoryProxy.

+0

cheers mec - sonne comme celui-ci. Je vais essayer de sortir plus tard, mais je sais que cela fonctionnera - était d'avoir un 5 drôle hier soir: s – iwayneo