Note that there are some explanatory texts on larger screens.

plurals
  1. POExtJs GridPanel freeze/lock multiple columns
    primarykey
    data
    text
    <p>Though ExtJs GridPanel is rich datacontrol , it has restricted columns freezing functionality. Only first column can be freezed via locked attribute. Has anyone solved this problem ?</p> <p>Here is my code:</p> <pre><code>Ext.require(['Ext.grid.*', 'Ext.data.*', 'Ext.util.*', 'Ext.state.*']); Ext.onReady(function () { // sample static data for the store var myData = [ ['3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'], ['Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'], ['Altria Group Inc', 83.81, 0.28, 0.34, '9/1 12:00am'], ['American Express Company', 52.55, 0.01, 0.02, '9/1 12:00am'], ['American International Group, Inc.', 64.13, 0.31, 0.49, '9/1 12:00am'], ['AT&amp;T Inc.', 31.61, -0.48, -1.54, '9/1 12:00am'], ['Boeing Co.', 75.43, 0.53, 0.71, '9/1 12:00am'], ['Caterpillar Inc.', 67.27, 0.92, 1.39, '9/1 12:00am'], ['Citigroup, Inc.', 49.37, 0.02, 0.04, '9/1 12:00am'], ['E.I. du Pont de Nemours and Company', 40.48, 0.51, 1.28, '9/1 12:00am'], ['Exxon Mobil Corp', 68.1, -0.43, -0.64, '9/1 12:00am'], ['General Electric Company', 34.14, -0.08, -0.23, '9/1 12:00am'], ['General Motors Corporation', 30.27, 1.09, 3.74, '9/1 12:00am'], ['Hewlett-Packard Co.', 36.53, -0.03, -0.08, '9/1 12:00am'], ['Honeywell Intl Inc', 38.77, 0.05, 0.13, '9/1 12:00am'], ['Intel Corporation', 19.88, 0.31, 1.58, '9/1 12:00am'], ['International Business Machines', 81.41, 0.44, 0.54, '9/1 12:00am'], ['Johnson &amp; Johnson', 64.72, 0.06, 0.09, '9/1 12:00am'], ['JP Morgan &amp; Chase &amp; Co', 45.73, 0.07, 0.15, '9/1 12:00am'], ['McDonald\'s Corporation', 36.76, 0.86, 2.40, '9/1 12:00am'], ['Merck &amp; Co., Inc.', 40.96, 0.41, 1.01, '9/1 12:00am'], ['Microsoft Corporation', 25.84, 0.14, 0.54, '9/1 12:00am'], ['Pfizer Inc', 27.96, 0.4, 1.45, '9/1 12:00am'], ['The Coca-Cola Company', 45.07, 0.26, 0.58, '9/1 12:00am'], ['The Home Depot, Inc.', 34.64, 0.35, 1.02, '9/1 12:00am'], ['The Procter &amp; Gamble Company', 61.91, 0.01, 0.02, '9/1 12:00am'], ['United Technologies Corporation', 63.26, 0.55, 0.88, '9/1 12:00am'], ['Verizon Communications', 35.57, 0.39, 1.11, '9/1 12:00am'], ['Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '9/1 12:00am'] ]; function change(val) { if (val &gt; 0) { return '&lt;span style="color:green;"&gt;' + val + '&lt;/span&gt;'; } else if (val &lt; 0) { return '&lt;span style="color:red;"&gt;' + val + '&lt;/span&gt;'; } return val; } function pctChange(val) { if (val &gt; 0) { return '&lt;span style="color:green;"&gt;' + val + '%&lt;/span&gt;'; } else if (val &lt; 0) { return '&lt;span style="color:red;"&gt;' + val + '%&lt;/span&gt;'; } return val; } // create the data store var store = Ext.create('Ext.data.ArrayStore', { fields: [{ name: 'company' }, { name: 'price', type: 'float' }, { name: 'change', type: 'float' }, { name: 'pctChange', type: 'float' }, { name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia' }], data: myData }); // create the Grid var grid = Ext.create('Ext.grid.Panel', { store: store, columnLines: true, columns: [{ text: 'Company', locked: true, width: 200, sortable: false, dataIndex: 'company' }, { text: 'Price', width: 125, sortable: false, locked: true, renderer: 'usMoney', dataIndex: 'price' }, { text: 'Change', width: 125, sortable: true, renderer: change, dataIndex: 'change' }, { text: '% Change', width: 125, sortable: true, renderer: pctChange, dataIndex: 'pctChange' }, { text: 'Last Updated', width: 135, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange' }], height: 350, width: 600, title: 'Locking Grid Column', renderTo: 'grid-example', viewConfig: { stripeRows: true } }); }); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload