/** * @class Ext.grid.RowNumberer * @extends Ext.grid.column.Column * This is a utility class that can be passed into a {@link Ext.grid.column.Column} as a column config that provides * an automatic row numbering column. * <br>Usage:<br><pre><code> columns: [ Ext.create('Ext.grid.RowNumberer'), {text: "Company", flex: 1, sortable: true, dataIndex: 'company'}, {text: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, {text: "Change", width: 120, sortable: true, dataIndex: 'change'}, {text: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'}, {text: "Last Updated", width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ] *</code></pre> * @constructor * @param {Object} config The configuration options */ Ext.define('Ext.grid.RowNumberer', { extend: 'Ext.grid.column.Column', alias: 'widget.rownumberer', /** * @cfg {String} text Any valid text or HTML fragment to display in the header cell for the row * number column (defaults to ' '). */ text: " ", /** * @cfg {Number} width The default width in pixels of the row number column (defaults to 23). */ width: 23, /** * @cfg {Boolean} sortable True if the row number column is sortable (defaults to false). * @hide */ sortable: false, align: 'right', constructor : function(config){ this.callParent(arguments); if (this.rowspan) { this.renderer = Ext.Function.bind(this.renderer, this); } }, // private fixed: true, hideable: false, menuDisabled: true, dataIndex: '', cls: Ext.baseCSSPrefix + 'row-numberer', rowspan: undefined, // private renderer: function(value, metaData, record, rowIdx, colIdx, store) { if (this.rowspan){ metaData.cellAttr = 'rowspan="'+this.rowspan+'"'; } metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special'; return store.indexOfTotal(record) + 1; } });