Ext.data.JsonStore + Ext.DataView =没有加载记录

时间:2010-05-19 14:27:10

标签: json datagridview extjs

我正在努力使DataView工作(在Ext JS 2.3上)。

这是jsonStore,它似乎正在工作(它调用服务器并获得有效的响应)。

Ext.onReady(function(){

        var prefStore = new Ext.data.JsonStore({
            autoLoad: true,  //autoload the data
            url: 'getHighestUserPreferences',
            baseParams:{
                userId: 'andreab',
                max: '50'
            },
            root: 'preferences',
            fields: [
               {name:'prefId', type: 'int'},
               {name:'absInteractionScore', type:'float'}
            ]
        });

然后是xtemplate:

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

小组:

        var panel = new Ext.Panel({
            id:'geoPreferencesView',
            frame:true,
            width:600,
            autoHeight:true,
            collapsible:false,
            layout:'fit',
            title:'Geo Preferences',

和DataView

            items: new Ext.DataView({
                store: prefStore,
                tpl: tpl,
                autoHeight:true,
                multiSelect: true,
                overClass:'x-view-over',
                itemSelector:'div.thumb-wrap',
                emptyText: 'No images to display'
            })
        });
        panel.render('extOutput');
    }); 

我在页面中看到的是带有标题的蓝框,但没有任何内容。 我该如何调试它,看看它为什么不起作用?

干杯, Mulone

1 个答案:

答案 0 :(得分:3)

您的商店与您的模板不符,您只是从示例中复制了这个,不是您:P

模板中的项目{name}等引用商店中的字段,在您的情况下只是prefId和absInteractionScore。

该示例模板所期望的是图像的名称和URL,然后构建一些图像和for。