我正在努力使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
答案 0 :(得分:3)
您的商店与您的模板不符,您只是从示例中复制了这个,不是您:P
模板中的项目{name}等引用商店中的字段,在您的情况下只是prefId和absInteractionScore。
该示例模板所期望的是图像的名称和URL,然后构建一些图像和for。