Properties Methods Events Config Options Direct Link
Observable
  Component
    BoxComponent
      DataView
        ListView

Class CQ.Ext.list.ListView

Package:CQ.Ext.list
Class:ListView
Extends:CQ.Ext.DataView
Clientlib:cq.widgets
xtype:listview

CQ.Ext.list.ListView is a fast and light-weight implentation of a Grid like view with the following characteristics:

  • resizable columns
  • selectable
  • column widths are initially proportioned by percentage based on the container width and number of columns
  • uses templates to render the data in any required format
  • no horizontal scrolling
  • no editing

Example usage:

// consume JSON of this form:
{
   "images":[
      {
         "name":"dance_fever.jpg",
         "size":2067,
         "lastmod":1236974993000,
         "url":"images\/thumbs\/dance_fever.jpg"
      },
      {
         "name":"zack_sink.jpg",
         "size":2303,
         "lastmod":1236974993000,
         "url":"images\/thumbs\/zack_sink.jpg"
      }
   ]
}
var store = new CQ.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 CQ.Ext.list.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}', // format using CQ.Ext.util.Format.fileSize()
        align: 'right'
    }]
});

// put it in a Panel so it looks pretty
var panel = new CQ.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)');
});

Config Options

Config Options Defined By
  allowDomMove : Boolean
Whether the component can move the Dom node when rendering (defaults to true).
Component
  deferEmptyText : Boolean
True to defer emptyText being applied until the store's first load
DataView
  disabled : Boolean
Render this component disabled (default is false).
Component
  disabledClass : String
CSS class added to the component when it is disabled (defaults to 'x-item-disabled').
Component
  emptyText : String
The text to display in the view when there is no data to display (defaults to '').
DataView
  pageX : Number
The page level x coordinate for this component if contained within a positioning container.
BoxComponent
  pageY : Number
The page level y coordinate for this component if contained within a positioning container.
BoxComponent
  trackOver : Boolean
True to enable mouseenter and mouseleave events
DataView
  x : Number
The local x (left) coordinate for this component if contained within a positioning container.
BoxComponent
  y : Number
The local y (top) coordinate for this component if contained within a positioning container.
BoxComponent

Public Properties

Property Defined By
  disableHeaders : Boolean
Set this property to true to disable the header click handler disabling sort (defaults to false).
ListView
  disabled : Boolean
True if this component is disabled. Read-only.
Component
  hidden : Boolean
True if this component is hidden. Read-only.
Component
  initialConfig : Object
This Component's initial configuration specification. Read-only.
Component
  maxColumnWidth : Object
IE has issues when setting percentage based widths to 100%. Default to 99.
ListView
  refOwner : CQ.Ext.Container The
Component
  rendered : Boolean
True if this component has been rendered. Read-only.
Component
  setStore : Object
Changes the data store bound to this view and refreshes it. (deprecated in favor of bindStore)
DataView

Public Methods

Method Defined By

Public Events

Event Defined By