Column.js
上传用户:dawnssy
上传日期:2022-08-06
资源大小:9345k
文件大小:5k
源码类别:

JavaScript

开发平台:

JavaScript

  1. /*!
  2.  * Ext JS Library 3.1.0
  3.  * Copyright(c) 2006-2009 Ext JS, LLC
  4.  * licensing@extjs.com
  5.  * http://www.extjs.com/license
  6.  */
  7. /**
  8.  * @class Ext.list.Column
  9.  * <p>This class encapsulates column configuration data to be used in the initialization of a
  10.  * {@link Ext.list.ListView ListView}.</p>
  11.  * <p>While subclasses are provided to render data in different ways, this class renders a passed
  12.  * data field unchanged and is usually used for textual columns.</p>
  13.  */
  14. Ext.list.Column = Ext.extend(Object, {
  15.     /**
  16.      * @private
  17.      * @cfg {Boolean} isColumn
  18.      * Used by ListView constructor method to avoid reprocessing a Column
  19.      * if <code>isColumn</code> is not set ListView will recreate a new Ext.list.Column
  20.      * Defaults to true.
  21.      */
  22.     isColumn: true,
  23.     
  24.     /**
  25.      * @cfg {String} align
  26.      * Set the CSS text-align property of the column. Defaults to <tt>'left'</tt>.
  27.      */        
  28.     align: 'left',
  29.     /**
  30.      * @cfg {String} header Optional. The header text to be used as innerHTML
  31.      * (html tags are accepted) to display in the ListView.  <b>Note</b>: to
  32.      * have a clickable header with no text displayed use <tt>'&#160;'</tt>.
  33.      */    
  34.     header: '',
  35.     
  36.     /**
  37.      * @cfg {Number} width Optional. Percentage of the container width
  38.      * this column should be allocated.  Columns that have no width specified will be
  39.      * allocated with an equal percentage to fill 100% of the container width.  To easily take
  40.      * advantage of the full container width, leave the width of at least one column undefined.
  41.      * Note that if you do not want to take up the full width of the container, the width of
  42.      * every column needs to be explicitly defined.
  43.      */    
  44.     width: null,
  45.     /**
  46.      * @cfg {String} cls Optional. This option can be used to add a CSS class to the cell of each
  47.      * row for this column.
  48.      */
  49.     cls: '',
  50.     
  51.     /**
  52.      * @cfg {String} tpl Optional. Specify a string to pass as the
  53.      * configuration string for {@link Ext.XTemplate}.  By default an {@link Ext.XTemplate}
  54.      * will be implicitly created using the <tt>dataIndex</tt>.
  55.      */
  56.     /**
  57.      * @cfg {String} dataIndex <p><b>Required</b>. The name of the field in the
  58.      * ListViews's {@link Ext.data.Store}'s {@link Ext.data.Record} definition from
  59.      * which to draw the column's value.</p>
  60.      */
  61.     
  62.     constructor : function(c){
  63.         if(!c.tpl){
  64.             c.tpl = new Ext.XTemplate('{' + c.dataIndex + '}');
  65.         }
  66.         else if(Ext.isString(c.tpl)){
  67.             c.tpl = new Ext.XTemplate(c.tpl);
  68.         }
  69.         
  70.         Ext.apply(this, c);
  71.     }
  72. });
  73. Ext.reg('lvcolumn', Ext.list.Column);
  74. /**
  75.  * @class Ext.list.NumberColumn
  76.  * @extends Ext.list.Column
  77.  * <p>A Column definition class which renders a numeric data field according to a {@link #format} string.  See the
  78.  * {@link Ext.list.Column#xtype xtype} config option of {@link Ext.list.Column} for more details.</p>
  79.  */
  80. Ext.list.NumberColumn = Ext.extend(Ext.list.Column, {
  81.     /**
  82.      * @cfg {String} format
  83.      * A formatting string as used by {@link Ext.util.Format#number} to format a numeric value for this Column
  84.      * (defaults to <tt>'0,000.00'</tt>).
  85.      */    
  86.     format: '0,000.00',
  87.     
  88.     constructor : function(c) {
  89.         c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':number("' + (c.format || this.format) + '")}');       
  90.         Ext.list.NumberColumn.superclass.constructor.call(this, c);
  91.     }
  92. });
  93. Ext.reg('lvnumbercolumn', Ext.list.NumberColumn);
  94. /**
  95.  * @class Ext.list.DateColumn
  96.  * @extends Ext.list.Column
  97.  * <p>A Column definition class which renders a passed date according to the default locale, or a configured
  98.  * {@link #format}. See the {@link Ext.list.Column#xtype xtype} config option of {@link Ext.list.Column}
  99.  * for more details.</p>
  100.  */
  101. Ext.list.DateColumn = Ext.extend(Ext.list.Column, {
  102.     format: 'm/d/Y',
  103.     constructor : function(c) {
  104.         c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':date("' + (c.format || this.format) + '")}');      
  105.         Ext.list.DateColumn.superclass.constructor.call(this, c);
  106.     }
  107. });
  108. Ext.reg('lvdatecolumn', Ext.list.DateColumn);
  109. /**
  110.  * @class Ext.list.BooleanColumn
  111.  * @extends Ext.list.Column
  112.  * <p>A Column definition class which renders boolean data fields.  See the {@link Ext.list.Column#xtype xtype}
  113.  * config option of {@link Ext.list.Column} for more details.</p>
  114.  */
  115. Ext.list.BooleanColumn = Ext.extend(Ext.list.Column, {
  116.     /**
  117.      * @cfg {String} trueText
  118.      * The string returned by the renderer when the column value is not falsey (defaults to <tt>'true'</tt>).
  119.      */
  120.     trueText: 'true',
  121.     /**
  122.      * @cfg {String} falseText
  123.      * The string returned by the renderer when the column value is falsey (but not undefined) (defaults to
  124.      * <tt>'false'</tt>).
  125.      */
  126.     falseText: 'false',
  127.     /**
  128.      * @cfg {String} undefinedText
  129.      * The string returned by the renderer when the column value is undefined (defaults to <tt>'&#160;'</tt>).
  130.      */
  131.     undefinedText: '&#160;',
  132.     
  133.     constructor : function(c) {
  134.         c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':this.format}');
  135.         
  136.         var t = this.trueText, f = this.falseText, u = this.undefinedText;
  137.         c.tpl.format = function(v){
  138.             if(v === undefined){
  139.                 return u;
  140.             }
  141.             if(!v || v === 'false'){
  142.                 return f;
  143.             }
  144.             return t;
  145.         };
  146.         
  147.         Ext.list.DateColumn.superclass.constructor.call(this, c);
  148.     }
  149. });
  150. Ext.reg('lvbooleancolumn', Ext.list.BooleanColumn);