Ext.onReady(function(){ var store = new Ext.data.JsonStore({ url: 'get-images.php', root: 'images', fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date', dateFormat:'timestamp'}] }); store.load(); var listView = new Ext.ListView({ store: store, multiSelect: true, emptyText: 'No images to display', reserveScrollOffset: true, columns: [{ header: 'File', width: .5, dataIndex: 'name' },{ header: 'Last Modified', width: .35, dataIndex: 'lastmod', tpl: '{lastmod:date("m-d h:i a")}' },{ header: 'Size', dataIndex: 'size', tpl: '{size:fileSize}', align: 'right' }] }); // put it in a Panel so it looks pretty var panel = new Ext.Panel({ id:'images-view', width:425, height:250, collapsible:true, layout:'fit', title:'Simple ListView (0 items selected)', items: listView }); panel.render(document.body); // little bit of feedback listView.on('selectionchange', function(view, nodes){ var l = nodes.length; var s = l != 1 ? 's' : ''; panel.setTitle('Simple ListView ('+l+' item'+s+' selected)'); }); });