Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / docs / source / Column.html
1 <html>
2 <head>
3   <title>The source code</title>
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
6 </head>
7 <body  onload="prettyPrint();">
8     <pre class="prettyprint lang-js">/*!
9  * Ext JS Library 3.0.3
10  * Copyright(c) 2006-2009 Ext JS, LLC
11  * licensing@extjs.com
12  * http://www.extjs.com/license
13  */
14 <div id="cls-Ext.grid.Column"></div>/**\r
15  * @class Ext.grid.Column\r
16  * <p>This class encapsulates column configuration data to be used in the initialization of a\r
17  * {@link Ext.grid.ColumnModel ColumnModel}.</p>\r
18  * <p>While subclasses are provided to render data in different ways, this class renders a passed\r
19  * data field unchanged and is usually used for textual columns.</p>\r
20  */\r
21 Ext.grid.Column = function(config){\r
22     Ext.apply(this, config);\r
23 \r
24     if(Ext.isString(this.renderer)){\r
25         this.renderer = Ext.util.Format[this.renderer];\r
26     } else if(Ext.isObject(this.renderer)){\r
27         this.scope = this.renderer.scope;\r
28         this.renderer = this.renderer.fn;\r
29     }\r
30     this.renderer = this.renderer.createDelegate(this.scope || config);\r
31 \r
32     if(this.editor){\r
33         this.editor = Ext.create(this.editor, 'textfield');\r
34     }\r
35 };\r
36 \r
37 Ext.grid.Column.prototype = {\r
38     <div id="cfg-Ext.grid.Column-editable"></div>/**\r
39      * @cfg {Boolean} editable Optional. Defaults to <tt>true</tt>, enabling the configured\r
40      * <tt>{@link #editor}</tt>.  Set to <tt>false</tt> to initially disable editing on this column.\r
41      * The initial configuration may be dynamically altered using\r
42      * {@link Ext.grid.ColumnModel}.{@link Ext.grid.ColumnModel#setEditable setEditable()}.\r
43      */\r
44     <div id="cfg-Ext.grid.Column-id"></div>/**\r
45      * @cfg {String} id Optional. A name which identifies this column (defaults to the column's initial\r
46      * ordinal position.) The <tt>id</tt> is used to create a CSS <b>class</b> name which is applied to all\r
47      * table cells (including headers) in that column (in this context the <tt>id</tt> does not need to be\r
48      * unique). The class name takes the form of <pre>x-grid3-td-<b>id</b></pre>\r
49      * Header cells will also receive this class name, but will also have the class <pre>x-grid3-hd</pre>\r
50      * So, to target header cells, use CSS selectors such as:<pre>.x-grid3-hd-row .x-grid3-td-<b>id</b></pre>\r
51      * The {@link Ext.grid.GridPanel#autoExpandColumn} grid config option references the column via this\r
52      * unique identifier.\r
53      */\r
54     <div id="cfg-Ext.grid.Column-header"></div>/**\r
55      * @cfg {String} header Optional. The header text to be used as innerHTML\r
56      * (html tags are accepted) to display in the Grid view.  <b>Note</b>: to\r
57      * have a clickable header with no text displayed use <tt>'&#160;'</tt>.\r
58      */\r
59     <div id="cfg-Ext.grid.Column-groupable"></div>/**\r
60      * @cfg {Boolean} groupable Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option\r
61      * may be used to disable the header menu item to group by the column selected. Defaults to <tt>true</tt>,\r
62      * which enables the header menu group option.  Set to <tt>false</tt> to disable (but still show) the\r
63      * group option in the header menu for the column. See also <code>{@link #groupName}</code>.\r
64      */\r
65     <div id="cfg-Ext.grid.Column-groupName"></div>/**\r
66      * @cfg {String} groupName Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option\r
67      * may be used to specify the text with which to prefix the group field value in the group header line.\r
68      * See also {@link #groupRenderer} and\r
69      * {@link Ext.grid.GroupingView}.{@link Ext.grid.GroupingView#showGroupName showGroupName}.\r
70      */\r
71     <div id="cfg-Ext.grid.Column-groupRenderer"></div>/**\r
72      * @cfg {Function} groupRenderer <p>Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option\r
73      * may be used to specify the function used to format the grouping field value for display in the group\r
74      * {@link #groupName header}.  If a <tt><b>groupRenderer</b></tt> is not specified, the configured\r
75      * <tt><b>{@link #renderer}</b></tt> will be called; if a <tt><b>{@link #renderer}</b></tt> is also not specified\r
76      * the new value of the group field will be used.</p>\r
77      * <p>The called function (either the <tt><b>groupRenderer</b></tt> or <tt><b>{@link #renderer}</b></tt>) will be\r
78      * passed the following parameters:\r
79      * <div class="mdetail-params"><ul>\r
80      * <li><b>v</b> : Object<p class="sub-desc">The new value of the group field.</p></li>\r
81      * <li><b>unused</b> : undefined<p class="sub-desc">Unused parameter.</p></li>\r
82      * <li><b>r</b> : Ext.data.Record<p class="sub-desc">The Record providing the data\r
83      * for the row which caused group change.</p></li>\r
84      * <li><b>rowIndex</b> : Number<p class="sub-desc">The row index of the Record which caused group change.</p></li>\r
85      * <li><b>colIndex</b> : Number<p class="sub-desc">The column index of the group field.</p></li>\r
86      * <li><b>ds</b> : Ext.data.Store<p class="sub-desc">The Store which is providing the data Model.</p></li>\r
87      * </ul></div></p>\r
88      * <p>The function should return a string value.</p>\r
89      */\r
90     <div id="cfg-Ext.grid.Column-emptyGroupText"></div>/**\r
91      * @cfg {String} emptyGroupText Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option\r
92      * may be used to specify the text to display when there is an empty group value. Defaults to the\r
93      * {@link Ext.grid.GroupingView}.{@link Ext.grid.GroupingView#emptyGroupText emptyGroupText}.\r
94      */\r
95     <div id="cfg-Ext.grid.Column-dataIndex"></div>/**\r
96      * @cfg {String} dataIndex <p><b>Required</b>. The name of the field in the\r
97      * grid's {@link Ext.data.Store}'s {@link Ext.data.Record} definition from\r
98      * which to draw the column's value.</p>\r
99      */\r
100     <div id="cfg-Ext.grid.Column-width"></div>/**\r
101      * @cfg {Number} width\r
102      * Optional. The initial width in pixels of the column.\r
103      * The width of each column can also be affected if any of the following are configured:\r
104      * <div class="mdetail-params"><ul>\r
105      * <li>{@link Ext.grid.GridPanel}.<tt>{@link Ext.grid.GridPanel#autoExpandColumn autoExpandColumn}</tt></li>\r
106      * <li>{@link Ext.grid.GridView}.<tt>{@link Ext.grid.GridView#forceFit forceFit}</tt>\r
107      * <div class="sub-desc">\r
108      * <p>By specifying <tt>forceFit:true</tt>, {@link #fixed non-fixed width} columns will be\r
109      * re-proportioned (based on the relative initial widths) to fill the width of the grid so\r
110      * that no horizontal scrollbar is shown.</p>\r
111      * </div></li>\r
112      * <li>{@link Ext.grid.GridView}.<tt>{@link Ext.grid.GridView#autoFill autoFill}</tt></li>\r
113      * <li>{@link Ext.grid.GridPanel}.<tt>{@link Ext.grid.GridPanel#minColumnWidth minColumnWidth}</tt></li>\r
114      * <br><p><b>Note</b>: when the width of each column is determined, a space on the right side\r
115      * is reserved for the vertical scrollbar.  The\r
116      * {@link Ext.grid.GridView}.<tt>{@link Ext.grid.GridView#scrollOffset scrollOffset}</tt>\r
117      * can be modified to reduce or eliminate the reserved offset.</p>\r
118      */\r
119     <div id="cfg-Ext.grid.Column-sortable"></div>/**\r
120      * @cfg {Boolean} sortable Optional. <tt>true</tt> if sorting is to be allowed on this column.\r
121      * Defaults to the value of the <code>{@link Ext.grid.ColumnModel#defaultSortable}</code> property.\r
122      * Whether local/remote sorting is used is specified in <code>{@link Ext.data.Store#remoteSort}</code>.\r
123      */\r
124     <div id="cfg-Ext.grid.Column-fixed"></div>/**\r
125      * @cfg {Boolean} fixed Optional. <tt>true</tt> if the column width cannot be changed.  Defaults to <tt>false</tt>.\r
126      */\r
127     <div id="cfg-Ext.grid.Column-resizable"></div>/**\r
128      * @cfg {Boolean} resizable Optional. <tt>false</tt> to disable column resizing. Defaults to <tt>true</tt>.\r
129      */\r
130     <div id="cfg-Ext.grid.Column-menuDisabled"></div>/**\r
131      * @cfg {Boolean} menuDisabled Optional. <tt>true</tt> to disable the column menu. Defaults to <tt>false</tt>.\r
132      */\r
133     <div id="cfg-Ext.grid.Column-hidden"></div>/**\r
134      * @cfg {Boolean} hidden\r
135      * Optional. <tt>true</tt> to initially hide this column. Defaults to <tt>false</tt>.\r
136      * A hidden column {@link Ext.grid.GridPanel#enableColumnHide may be shown via the header row menu}.\r
137      * If a column is never to be shown, simply do not include this column in the Column Model at all. \r
138      */\r
139     <div id="cfg-Ext.grid.Column-tooltip"></div>/**\r
140      * @cfg {String} tooltip Optional. A text string to use as the column header's tooltip.  If Quicktips\r
141      * are enabled, this value will be used as the text of the quick tip, otherwise it will be set as the\r
142      * header's HTML title attribute. Defaults to ''.\r
143      */\r
144     <div id="cfg-Ext.grid.Column-renderer"></div>/**\r
145      * @cfg {Mixed} renderer\r
146      * <p>For an alternative to specifying a renderer see <code>{@link #xtype}</code></p>\r
147      * <p>Optional. A renderer is an 'interceptor' method which can be used transform data (value,\r
148      * appearance, etc.) before it is rendered). This may be specified in either of three ways:\r
149      * <div class="mdetail-params"><ul>\r
150      * <li>A renderer function used to return HTML markup for a cell given the cell's data value.</li>\r
151      * <li>A string which references a property name of the {@link Ext.util.Format} class which\r
152      * provides a renderer function.</li>\r
153      * <li>An object specifying both the renderer function, and its execution scope (<tt><b>this</b></tt>\r
154      * reference) e.g.:<pre style="margin-left:1.2em"><code>\r
155 {\r
156     fn: this.gridRenderer,\r
157     scope: this\r
158 }\r
159 </code></pre></li></ul></div>\r
160      * If not specified, the default renderer uses the raw data value.</p>\r
161      * <p>For information about the renderer function (passed parameters, etc.), see\r
162      * {@link Ext.grid.ColumnModel#setRenderer}. An example of specifying renderer function inline:</p><pre><code>\r
163 var companyColumn = {\r
164    header: 'Company Name',\r
165    dataIndex: 'company',\r
166    renderer: function(value, metaData, record, rowIndex, colIndex, store) {\r
167       // provide the logic depending on business rules\r
168       // name of your own choosing to manipulate the cell depending upon\r
169       // the data in the underlying Record object.\r
170       if (value == 'whatever') {\r
171           //metaData.css : String : A CSS class name to add to the TD element of the cell.\r
172           //metaData.attr : String : An html attribute definition string to apply to\r
173           //                         the data container element within the table\r
174           //                         cell (e.g. 'style="color:red;"').\r
175           metaData.css = 'name-of-css-class-you-will-define';\r
176       }\r
177       return value;\r
178    }\r
179 }\r
180      * </code></pre>\r
181      * See also {@link #scope}.\r
182      */\r
183     <div id="cfg-Ext.grid.Column-xtype"></div>/**\r
184      * @cfg {String} xtype Optional. A String which references a predefined {@link Ext.grid.Column} subclass\r
185      * type which is preconfigured with an appropriate <code>{@link #renderer}</code> to be easily\r
186      * configured into a ColumnModel. The predefined {@link Ext.grid.Column} subclass types are:\r
187      * <div class="mdetail-params"><ul>\r
188      * <li><b><tt>gridcolumn</tt></b> : {@link Ext.grid.Column} (<b>Default</b>)<p class="sub-desc"></p></li>\r
189      * <li><b><tt>booleancolumn</tt></b> : {@link Ext.grid.BooleanColumn}<p class="sub-desc"></p></li>\r
190      * <li><b><tt>numbercolumn</tt></b> : {@link Ext.grid.NumberColumn}<p class="sub-desc"></p></li>\r
191      * <li><b><tt>datecolumn</tt></b> : {@link Ext.grid.DateColumn}<p class="sub-desc"></p></li>\r
192      * <li><b><tt>templatecolumn</tt></b> : {@link Ext.grid.TemplateColumn}<p class="sub-desc"></p></li>\r
193      * </ul></div>\r
194      * <p>Configuration properties for the specified <code>xtype</code> may be specified with\r
195      * the Column configuration properties, for example:</p>\r
196      * <pre><code>\r
197 var grid = new Ext.grid.GridPanel({\r
198     ...\r
199     columns: [{\r
200         header: 'Last Updated',\r
201         dataIndex: 'lastChange',\r
202         width: 85,\r
203         sortable: true,\r
204         //renderer: Ext.util.Format.dateRenderer('m/d/Y'),\r
205         xtype: 'datecolumn', // use xtype instead of renderer\r
206         format: 'M/d/Y' // configuration property for {@link Ext.grid.DateColumn}\r
207     }, {\r
208         ...\r
209     }]\r
210 });\r
211      * </code></pre>\r
212      */\r
213     <div id="cfg-Ext.grid.Column-scope"></div>/**\r
214      * @cfg {Object} scope Optional. The scope (<tt><b>this</b></tt> reference) in which to execute the\r
215      * renderer.  Defaults to the Column configuration object.\r
216      */\r
217     <div id="cfg-Ext.grid.Column-align"></div>/**\r
218      * @cfg {String} align Optional. Set the CSS text-align property of the column.  Defaults to undefined.\r
219      */\r
220     <div id="cfg-Ext.grid.Column-css"></div>/**\r
221      * @cfg {String} css Optional. An inline style definition string which is applied to all table cells in the column\r
222      * (excluding headers). Defaults to undefined.\r
223      */\r
224     <div id="cfg-Ext.grid.Column-hideable"></div>/**\r
225      * @cfg {Boolean} hideable Optional. Specify as <tt>false</tt> to prevent the user from hiding this column\r
226      * (defaults to true).  To disallow column hiding globally for all columns in the grid, use\r
227      * {@link Ext.grid.GridPanel#enableColumnHide} instead.\r
228      */\r
229     <div id="cfg-Ext.grid.Column-editor"></div>/**\r
230      * @cfg {Ext.form.Field} editor Optional. The {@link Ext.form.Field} to use when editing values in this column\r
231      * if editing is supported by the grid. See <tt>{@link #editable}</tt> also.\r
232      */\r
233 \r
234     /**\r
235      * @private\r
236      * @cfg {Boolean} isColumn\r
237      * Used by ColumnModel setConfig method to avoid reprocessing a Column\r
238      * if <code>isColumn</code> is not set ColumnModel will recreate a new Ext.grid.Column\r
239      * Defaults to true.\r
240      */\r
241     isColumn : true,\r
242 \r
243     <div id="prop-Ext.grid.Column-renderer"></div>/**\r
244      * Optional. A function which returns displayable data when passed the following parameters:\r
245      * <div class="mdetail-params"><ul>\r
246      * <li><b>value</b> : Object<p class="sub-desc">The data value for the cell.</p></li>\r
247      * <li><b>metadata</b> : Object<p class="sub-desc">An object in which you may set the following attributes:<ul>\r
248      * <li><b>css</b> : String<p class="sub-desc">A CSS class name to add to the cell's TD element.</p></li>\r
249      * <li><b>attr</b> : String<p class="sub-desc">An HTML attribute definition string to apply to the data container\r
250      * element <i>within</i> the table cell (e.g. 'style="color:red;"').</p></li></ul></p></li>\r
251      * <li><b>record</b> : Ext.data.record<p class="sub-desc">The {@link Ext.data.Record} from which the data was\r
252      * extracted.</p></li>\r
253      * <li><b>rowIndex</b> : Number<p class="sub-desc">Row index</p></li>\r
254      * <li><b>colIndex</b> : Number<p class="sub-desc">Column index</p></li>\r
255      * <li><b>store</b> : Ext.data.Store<p class="sub-desc">The {@link Ext.data.Store} object from which the Record\r
256      * was extracted.</p></li>\r
257      * </ul></div>\r
258      * @property renderer\r
259      * @type Function\r
260      */\r
261     renderer : function(value){\r
262         if(Ext.isString(value) && value.length < 1){\r
263             return '&#160;';\r
264         }\r
265         return value;\r
266     },\r
267 \r
268     // private\r
269     getEditor: function(rowIndex){\r
270         return this.editable !== false ? this.editor : null;\r
271     },\r
272 \r
273     <div id="method-Ext.grid.Column-getCellEditor"></div>/**\r
274      * Returns the {@link Ext.Editor editor} defined for this column that was created to wrap the {@link Ext.form.Field Field}\r
275      * used to edit the cell.\r
276      * @param {Number} rowIndex The row index\r
277      * @return {Ext.Editor}\r
278      */\r
279     getCellEditor: function(rowIndex){\r
280         var editor = this.getEditor(rowIndex);\r
281         if(editor){\r
282             if(!editor.startEdit){\r
283                 if(!editor.gridEditor){\r
284                     editor.gridEditor = new Ext.grid.GridEditor(editor);\r
285                 }\r
286                 return editor.gridEditor;\r
287             }else if(editor.startEdit){\r
288                 return editor;\r
289             }\r
290         }\r
291         return null;\r
292     }\r
293 };\r
294 \r
295 <div id="cls-Ext.grid.BooleanColumn"></div>/**\r
296  * @class Ext.grid.BooleanColumn\r
297  * @extends Ext.grid.Column\r
298  * <p>A Column definition class which renders boolean data fields.  See the {@link Ext.grid.Column#xtype xtype}\r
299  * config option of {@link Ext.grid.Column} for more details.</p>\r
300  */\r
301 Ext.grid.BooleanColumn = Ext.extend(Ext.grid.Column, {\r
302     <div id="cfg-Ext.grid.BooleanColumn-trueText"></div>/**\r
303      * @cfg {String} trueText\r
304      * The string returned by the renderer when the column value is not falsey (defaults to <tt>'true'</tt>).\r
305      */\r
306     trueText: 'true',\r
307     <div id="cfg-Ext.grid.BooleanColumn-falseText"></div>/**\r
308      * @cfg {String} falseText\r
309      * The string returned by the renderer when the column value is falsey (but not undefined) (defaults to\r
310      * <tt>'false'</tt>).\r
311      */\r
312     falseText: 'false',\r
313     <div id="cfg-Ext.grid.BooleanColumn-undefinedText"></div>/**\r
314      * @cfg {String} undefinedText\r
315      * The string returned by the renderer when the column value is undefined (defaults to <tt>'&#160;'</tt>).\r
316      */\r
317     undefinedText: '&#160;',\r
318 \r
319     constructor: function(cfg){\r
320         Ext.grid.BooleanColumn.superclass.constructor.call(this, cfg);\r
321         var t = this.trueText, f = this.falseText, u = this.undefinedText;\r
322         this.renderer = function(v){\r
323             if(v === undefined){\r
324                 return u;\r
325             }\r
326             if(!v || v === 'false'){\r
327                 return f;\r
328             }\r
329             return t;\r
330         };\r
331     }\r
332 });\r
333 \r
334 <div id="cls-Ext.grid.NumberColumn"></div>/**\r
335  * @class Ext.grid.NumberColumn\r
336  * @extends Ext.grid.Column\r
337  * <p>A Column definition class which renders a numeric data field according to a {@link #format} string.  See the\r
338  * {@link Ext.grid.Column#xtype xtype} config option of {@link Ext.grid.Column} for more details.</p>\r
339  */\r
340 Ext.grid.NumberColumn = Ext.extend(Ext.grid.Column, {\r
341     <div id="cfg-Ext.grid.NumberColumn-format"></div>/**\r
342      * @cfg {String} format\r
343      * A formatting string as used by {@link Ext.util.Format#number} to format a numeric value for this Column\r
344      * (defaults to <tt>'0,000.00'</tt>).\r
345      */\r
346     format : '0,000.00',\r
347     constructor: function(cfg){\r
348         Ext.grid.NumberColumn.superclass.constructor.call(this, cfg);\r
349         this.renderer = Ext.util.Format.numberRenderer(this.format);\r
350     }\r
351 });\r
352 \r
353 <div id="cls-Ext.grid.DateColumn"></div>/**\r
354  * @class Ext.grid.DateColumn\r
355  * @extends Ext.grid.Column\r
356  * <p>A Column definition class which renders a passed date according to the default locale, or a configured\r
357  * {@link #format}. See the {@link Ext.grid.Column#xtype xtype} config option of {@link Ext.grid.Column}\r
358  * for more details.</p>\r
359  */\r
360 Ext.grid.DateColumn = Ext.extend(Ext.grid.Column, {\r
361     <div id="cfg-Ext.grid.DateColumn-format"></div>/**\r
362      * @cfg {String} format\r
363      * A formatting string as used by {@link Date#format} to format a Date for this Column\r
364      * (defaults to <tt>'m/d/Y'</tt>).\r
365      */\r
366     format : 'm/d/Y',\r
367     constructor: function(cfg){\r
368         Ext.grid.DateColumn.superclass.constructor.call(this, cfg);\r
369         this.renderer = Ext.util.Format.dateRenderer(this.format);\r
370     }\r
371 });\r
372 \r
373 <div id="cls-Ext.grid.TemplateColumn"></div>/**\r
374  * @class Ext.grid.TemplateColumn\r
375  * @extends Ext.grid.Column\r
376  * <p>A Column definition class which renders a value by processing a {@link Ext.data.Record Record}'s\r
377  * {@link Ext.data.Record#data data} using a {@link #tpl configured} {@link Ext.XTemplate XTemplate}.\r
378  * See the {@link Ext.grid.Column#xtype xtype} config option of {@link Ext.grid.Column} for more\r
379  * details.</p>\r
380  */\r
381 Ext.grid.TemplateColumn = Ext.extend(Ext.grid.Column, {\r
382     <div id="cfg-Ext.grid.TemplateColumn-tpl"></div>/**\r
383      * @cfg {String/XTemplate} tpl\r
384      * An {@link Ext.XTemplate XTemplate}, or an XTemplate <i>definition string</i> to use to process a\r
385      * {@link Ext.data.Record Record}'s {@link Ext.data.Record#data data} to produce a column's rendered value.\r
386      */\r
387     constructor: function(cfg){\r
388         Ext.grid.TemplateColumn.superclass.constructor.call(this, cfg);\r
389         var tpl = Ext.isObject(this.tpl) ? this.tpl : new Ext.XTemplate(this.tpl);\r
390         this.renderer = function(value, p, r){\r
391             return tpl.apply(r.data);\r
392         };\r
393         this.tpl = tpl;\r
394     }\r
395 });\r
396 \r
397 /*\r
398  * @property types\r
399  * @type Object\r
400  * @member Ext.grid.Column\r
401  * @static\r
402  * <p>An object containing predefined Column classes keyed by a mnemonic code which may be referenced\r
403  * by the {@link Ext.grid.ColumnModel#xtype xtype} config option of ColumnModel.</p>\r
404  * <p>This contains the following properties</p><div class="mdesc-details"><ul>\r
405  * <li>gridcolumn : <b>{@link Ext.grid.Column Column constructor}</b></li>\r
406  * <li>booleancolumn : <b>{@link Ext.grid.BooleanColumn BooleanColumn constructor}</b></li>\r
407  * <li>numbercolumn : <b>{@link Ext.grid.NumberColumn NumberColumn constructor}</b></li>\r
408  * <li>datecolumn : <b>{@link Ext.grid.DateColumn DateColumn constructor}</b></li>\r
409  * <li>templatecolumn : <b>{@link Ext.grid.TemplateColumn TemplateColumn constructor}</b></li>\r
410  * </ul></div>\r
411  */\r
412 Ext.grid.Column.types = {\r
413     gridcolumn : Ext.grid.Column,\r
414     booleancolumn: Ext.grid.BooleanColumn,\r
415     numbercolumn: Ext.grid.NumberColumn,\r
416     datecolumn: Ext.grid.DateColumn,\r
417     templatecolumn: Ext.grid.TemplateColumn\r
418 };</pre>
419 </body>
420 </html>