13693261870
2022-09-16 354b3dbfbffb3df45212a2a44dbbf48b4acc2594
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>The source code</title>
  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  <style type="text/css">
    .highlight { display: block; background-color: #ddd; }
  </style>
  <script type="text/javascript">
    function highlight() {
      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
    }
  </script>
</head>
<body onload="prettyPrint(); highlight();">
  <pre class="prettyprint lang-js"><span id='Ext-grid-column-RowNumberer'>/**
</span> * A special type of Grid {@link Ext.grid.column.Column} that provides automatic
 * row numbering.
 * 
 * Usage:
 *
 *     columns: [
 *         {xtype: 'rownumberer'},
 *         {text: &quot;Company&quot;, flex: 1, sortable: true, dataIndex: 'company'},
 *         {text: &quot;Price&quot;, width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
 *         {text: &quot;Change&quot;, width: 120, sortable: true, dataIndex: 'change'},
 *         {text: &quot;% Change&quot;, width: 120, sortable: true, dataIndex: 'pctChange'},
 *         {text: &quot;Last Updated&quot;, width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
 *     ]
 *
 */
Ext.define('Ext.grid.column.RowNumberer', {
    extend: 'Ext.grid.column.Column',
    alternateClassName: 'Ext.grid.RowNumberer',
    alias: 'widget.rownumberer',
 
<span id='Ext-grid-column-RowNumberer-cfg-text'>    /**
</span>     * @cfg {String} text
     * Any valid text or HTML fragment to display in the header cell for the row number column.
     */
    text: &quot;&amp;#160&quot;,
 
<span id='Ext-grid-column-RowNumberer-cfg-width'>    /**
</span>     * @cfg {Number} width
     * The default width in pixels of the row number column.
     */
    width: 23,
 
<span id='Ext-grid-column-RowNumberer-cfg-sortable'>    /**
</span>     * @cfg {Boolean} sortable
     * @hide
     */
    sortable: false,
    
<span id='Ext-grid-column-RowNumberer-cfg-draggable'>    /**
</span>     * @cfg {Boolean} [draggable=false]
     * False to disable drag-drop reordering of this column.
     */
    draggable: false,
 
<span id='Ext-grid-column-RowNumberer-property-autoLock'>    // Flag to Lockable to move instances of this column to the locked side.
</span>    autoLock: true,
 
<span id='Ext-grid-column-RowNumberer-cfg-lockable'>    // May not be moved from its preferred locked side when grid is enableLocking:true
</span>    lockable: false,
 
<span id='Ext-grid-column-RowNumberer-cfg-align'>    align: 'right',
</span>
<span id='Ext-grid-column-RowNumberer-method-constructor'>    constructor : function(config){
</span>        var me = this;
 
        // Copy the prototype's default width setting into an instance property to provide
        // a default width which will not be overridden by AbstractContainer.applyDefaults use of Ext.applyIf
        me.width = me.width;
 
        me.callParent(arguments);
        me.scope = me;
    },
 
<span id='Ext-grid-column-RowNumberer-cfg-resizable'>    // private
</span>    resizable: false,
<span id='Ext-grid-column-RowNumberer-cfg-hideable'>    hideable: false,
</span><span id='Ext-grid-column-RowNumberer-cfg-menuDisabled'>    menuDisabled: true,
</span><span id='Ext-grid-column-RowNumberer-cfg-dataIndex'>    dataIndex: '',
</span><span id='Ext-grid-column-RowNumberer-cfg-cls'>    cls: Ext.baseCSSPrefix + 'row-numberer',
</span><span id='Ext-grid-column-RowNumberer-cfg-tdCls'>    tdCls: Ext.baseCSSPrefix + 'grid-cell-row-numberer ' + Ext.baseCSSPrefix + 'grid-cell-special',
</span><span id='Ext-grid-column-RowNumberer-property-innerCls'>    innerCls: Ext.baseCSSPrefix + 'grid-cell-inner-row-numberer',
</span><span id='Ext-grid-column-RowNumberer-property-rowspan'>    rowspan: undefined,
</span>
<span id='Ext-grid-column-RowNumberer-method-renderer'>    // private
</span>    renderer: function(value, metaData, record, rowIdx, colIdx, store) {
        var rowspan = this.rowspan,
            page = store.currentPage,
            result = record.index;
            
        if (rowspan) {
            metaData.tdAttr = 'rowspan=&quot;' + rowspan + '&quot;';
        }
 
        if (result == null) {
            result = rowIdx;
            if (page &gt; 1) {
                result += (page - 1) * store.pageSize; 
            }
        }
        return result + 1;
    }
});
</pre>
</body>
</html>