我想用一个表使用Ext JS XTemplate在屏幕上显示一个列表。ExtJS XTemplate for循环与JSON
这是我的配置,
读者:
var readerX = new Ext.data.JsonReader({
successProperty : 'success',
root : 'infoList',
fields : [
{name: 'ID'},
{name: 'distance'},
{name: 'time'}
]
});
商店:
var storeX = new Ext.data.Store({
id : 'idx',
reader : readerX
});
模板:
var templateX = new Ext.XTemplate(
'<tpl for=".">',
'<table class="tableTEXT" width="100%">',
'<tbody>',
'<tpl for="infoList">',
'<tr>',
'<th class="tableTEXT2" align="left" width="%15"><b>ID</b></th>',
'<td class="tableTEXT" width="%35" align="left">{ID}</td>',
'</tr>',
'<tr>',
'<th class="tableTEXT2" align="left" width="%15">Distance</th>',
'<td class="tableTEXT" width="%35" align="left">{distance} km</td>',
'<th class="tableTEXT2" align="left" width="%15">Time</th>',
'<td class="tableTEXT" width="%35" align="left">{time}</td>',
'</tr>',
'</tpl>',
'</tbody>',
'</table>',
'<hr>',
'</tpl>'
);
和JSON是:
{"success":true, "infoList":[{"ID":1,"distance":100,"time":10},{"ID":2,"distance":2100,"time":50},{"ID":3,"distance":150,"time":15}]}
我使用这样的面板模板。
var reportPanel = new Ext.Panel({
items: [
{
id : 'summaryPanel',
region : 'center',
bodyStyle : {
background: '#ffffff',
padding : '7px'
},
items: [
new Ext.DataView({
store : storeX,
tpl : templateX,
autoHeight : true,
multiSelect : true,
overClass : 'x-view-over',
itemSelector: 'div.thumb-wrap',
emptyText : 'no record found!'
})
]
}
]
});
使Ajax请求我将展示这样的模态窗口结果后:
success: function (response)
{
var resData = Ext.util.JSON.decode(response.responseText);
storeX.loadData(resData);
new Ext.Window({
title : 'Report',
plain : true,
border : false,
modal : true,
autoHeight : true,
buttonAlign : 'center',
items : [reportPanel],
height : Ext.getBody().getViewSize().height - 100,
width : Ext.getBody().getViewSize().width*0.5 //90%
}).show();
},
我如何可以循环的json为模板?
THX很多
我认为这只用于ExtJS 4?对? Extjs 2和3中的 – vtokmak 2012-04-20 20:15:15
是Ext.DataView。用法类似 – Ivan 2012-04-20 21:10:19
我删除了此行的开始和结束标记''','然后它就起作用了。 –
vtokmak
2012-04-20 22:27:39