column skewing

by Johan Vandeplas

HTML

<script src="https://cdn.sencha.com/ext/gpl/4.2.1/ext-all-dev.js"></script>
<link rel="stylesheet" href="https://cdn.sencha.com/ext/gpl/4.2.1/resources/css/ext-all.css">

JavaScript

var itemsPerPage = 2;   // set the number of items you want per page

var store = Ext.create('Ext.data.Store', {
    storeId:'simpsonsStore',
    fields:['name', 'email', 'phone'],
    data:{'items':[
        { 'name': 'Lisa',  "email":"[email protected]",  "phone":"555-111-1224"  },
        { 'name': 'Bart',  "email":"[email protected]",  "phone":"555-222-1234" },
        { 'name': 'Homer', "email":"[email protected]",  "phone":"555-222-1244"  },
        { 'name': 'Marge', "email":"[email protected]", "phone":"555-222-1254"  }
    ]},
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

// specify segment of data you want to load using params
store.load({
    params:{
        start:0,
        limit: itemsPerPage
    }
});

var grid = Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    enableLocking: true,
    store: store,
    columns: [
        { header: 'Name',  dataIndex: 'name', locked: true},
        { header: 'Email', dataIndex: 'email', locked: true },
        { header: 'Phone', dataIndex: 'phone', locked: true },
        { header: 'Name',  dataIndex: 'name', locked: true },
        { header: 'Email', dataIndex: 'email'},
        { header: 'Phone', dataIndex: 'phone' },
        { header: 'Name',  dataIndex: 'name' },
        { header: 'Email', dataIndex: 'email' },
        { header: 'Phone', dataIndex: 'phone' }
    ],
    width: 400,
    height: 400,
    dockedItems: [{
        xtype: 'pagingtoolbar',
        store: store,   // same store GridPanel is using
        dock: 'bottom',
        displayInfo: true
    }],
    renderTo: Ext.getBody()
});